Method and apparatus for compression, method and apparatus for decompression, compression/ decompression system, record medium

ABSTRACT

On a compression side, from an inputted analog signal  101,  points  102   a  to  102   f  where a differential absolute value is at a predetermined value or smaller are detected as sample points, and a pair of discrete amplitude data on the sample points and timing data indicative of a time interval between sample points is obtained as compressed data. On an expansion side, amplitude data and timing data that are included in the compressed data are used to obtain expansion data by determining interpolation data for interpolating two pieces of amplitude data, based on the two pieces of amplitude data on two successive sample points and timing data therebetween. Thus, when a signal on a time base is compressed and expanded, the operation can be performed on a time base without frequency conversion.

BACKGROUND OF THE INVENTION

[0001] 1. Field of the Invention

[0002] The present invention relates to method and apparatus forcompression, method and apparatus for decompression,compression/decompression system, and record medium, particularly to amethod for compression and decompression a continuous analog signal ordigital signal.

[0003] 2. Description of the Related Art

[0004] Conventionally, when transmitting and storing a signal such as apicture signal and an aural signal that has a large amount ofinformation, a signal has been compressed and expanded in order toreduce an amount of transmitted information, increase a storing time ofa storage medium, and so on. Generally, when an analog signal iscompressed, an analog signal is initially sampled according to apredetermined sampling frequency and is digitized, and compression isperformed on the obtained digital data.

[0005] For example, in the case of compression on a picture signal andan aural signal, a method is used in which compression is performed on afrequency region after original data is processed using a conversionfilter on a time base-frequency axis such as DCT(Discrete-Cosine-Transform). DPCM (Differential Pulse Code Modulation),which is frequently used as a method of compression an aural signal fora telephone line, is used with the same intention. Additionally, theDPCM compression is a method for coding a difference of adjacent samplevalues when a waveform is sampled.

[0006] Further, as a method for performing time/frequency conversion, amethod using a sub-band filter and MDCT (Modified Discrete CosineTransform) is also available. As a coding method using such a method,MPEG (Moving Picture Image Coding Experts Group) audio is applicable.

[0007] Further, the most widely used picture compression system isgenerally known as the MPEG standard.

[0008] Data compressed by the above compression method is basicallyexpanded according to reversed operations of the same compressionmethod.

[0009] Namely, after compressed digital data is converted from a signalof a frequency region to a signal of a time region by frequency/timeconversion, predetermined decompression operations are carried out toreproduce original digital data. And then, the original data obtainedthus is subjected to digital-analog conversion if necessary and isoutputted as an analog signal.

[0010] However, in the above conventional compression and decompressionmethod, a signal on a time base is converted to a signal on a frequencyaxis before compression. Hence, operations such as time/frequencyconversion for compression and frequency/time conversion for expansionare necessary. Therefore, the operations are complicated and theconfiguration for realizing the operations becomes extremelycomplicated. This problem has caused not only a longer processing timefor compression and expansion but also difficulty in achieving a smallerdevice.

[0011] Moreover, generally in the case of compression and expansion ofdata, it is important to consider how to improve the quality ofreproduced data while improving its compressibility. However, in theabove conventional compression and decompression method, when acompressibility of a picture signal and an aural signal is increased, animage and voice reproduced by decompression compressed data are degradedin quality. In contrast, when importance is placed on the quality of areproduced image and reproduced voice, a picture signal and an auralsignal decreases in compressibility. Therefore, it has been extremelydifficult to achieve both of an increased compressibility and improvedquality of reproduced data.

[0012] The present invention is devised to solve the above problems andaims to simplify the compression and decompression operations for asignal so as to shorten a processing time and to simplify theconfiguration for realizing the operations.

[0013] Also, another object of the present invention is to provide a newcompression and decompression method for increasing compressibility andimproving quality of reproduced data.

[0014] Furthermore, another object of the present invention is to morereadily perform compression and expansion without using a table.

SUMMARY OF THE INVENTION

[0015] In order to solve the above-mentioned problems, on a compressionside of the first invention, a signal to be compressed is sampled at atime interval of a point where a differential absolute value is at apredetermined value or smaller, a pair of discrete amplitude data oneach sample point and timing data indicative of a time interval betweensample points is obtained as compressed data.

[0016] Here, a signal to be compressed may be oversampled, and theoversampled data may be sampled at a time interval of a point where adifferential absolute value is at a predetermined value or smaller.Further, on the oversampled data, the operation for generating averagevalue data of successive sample values may be further performed.

[0017] Moreover, on an expansion side of the first invention, regardingcompressed data composed of a pair of amplitude data on predeterminedsample points extracted from a signal to be compressed and timing dataindicative of a time interval between sample points, amplitude data onsuccessive sample points and timing data therebetween are used to obtaininterpolation data for interpolating pieces of amplitude data having atime interval indicated by the timing data. Thus, expansion data isobtained.

[0018] Here, a sampling function obtained from two pieces of amplitudedata on two successive sample points and timing data therebetween may beused to obtain interpolation data for interpolating the two pieces ofamplitude data.

[0019] According to the first invention configured thus, when a signalis compressed on a time base, the operation can be performed on a timebase without performing time/frequency conversion on a frequency axis.Besides, when data compressed thus is expanded as well, the operationcan be performed on a time base. Therefore, it is possible to simplifycompression and expansion, to shorten an operating time, and to simplifythe configuration for the operations. Also, when compressed data istransmitted from the compression side and is reproduced on the expansionside, a simple interpolating operation on a time base can sequentiallyprocess and reproduce compressed data inputted to the expansion side,thereby realizing real-time operations.

[0020] Besides, in the present embodiment, only data on sample points ofsampling points can be obtained as compressed data, thereby achievinghigh compressibility. The sample points are equivalent to inflectedpoints in a signal to be compressed, and the sample points include allminimum points required for reproducing original data by aninterpolating operation on the expansion side. Therefore, it is possibleto obtain high-quality reproduced data with higher reproducibility oforiginal data.

[0021] Further, on the compression side of the second invention, digitaldata of a basic waveform corresponding to values of inputted n pieces ofdiscrete data is synthesized by oversampling and a moving averageoperation or a convoluting operation so as to obtain digitalinterpolation values for the discrete data. Thereafter, the digitalinterpolation values are sampled at a time interval of a point having aminimum differential absolute value, and a pair of discrete amplitudedata on sample points and timing data indicative of a time intervalbetween sample points is obtained as compressed data.

[0022] Moreover, on the expansion side of the second invention, by usingamplitude data and timing data that are included in compressed data,based on two pieces of amplitude data on two successive sample pointsand timing data therebetween, interpolation data for interpolating thetwo pieces of amplitude data is determined so as to obtain expansiondata.

[0023] According to the second invention configured thus, when data iscompressed on a time base, the operation can be performed on a time basewithout performing time/frequency conversion on a frequency axis.Besides, when data compressed thus is expanded as well, the operationcan be performed on a time base. Therefore, it is possible to simplifycompression and expansion, to shorten an operating time, and to simplifythe configuration for the operations. Also, when compressed data istransmitted from the compression side and is reproduced on the expansionside as well, a simple interpolating operation on a time base cansequentially process and reproduce compressed data inputted to theexpansion side, thereby realizing real-time operations.

[0024] Besides, only data on sample points of sampling points can beobtained as compressed data, thereby achieving high compressibility. Thesample points are equivalent to inflected points in a signal to becompressed, and the sample points include all minimum points requiredfor reproducing original data by an interpolating operation on theexpansion side. Therefore, it is possible to obtain high-qualityreproduced data with higher reproducibility of original data.

[0025] Additionally, according to the second invention, when aninterpolation value is obtained by performing oversampling andconvolution on digital data, only values of a limited number of piecesof discrete data need to be considered for determining a certaininterpolation value, thereby preventing a censoring error. Thus, aninterpolation value can be obtained accurately. Therefore, regardingdata reproduced on the expansion side when compression is performedusing the interpolation value, it is possible to improve reproducibilityto original data before compression.

[0026] Besides, on the compression side of the third invention, inputteddigital data is differentiated, a point where a differential valuechanges in polarity is detected as a sample point, and digital datarounded by a predetermined value is obtained as discrete compressedamplitude data on sample points. A pair of compressed amplitudedifference data, which is obtained by computing a difference betweenpieces of the compressed amplitude data, and timing data indicative of atime interval between sample points is obtained as compressed data.

[0027] Further, on the expansion side of the third invention, thecompressed amplitude difference data, which is oversampled byeven-numbered times, is subjected to multiple integral, and a movingaverage operation is performed on the integral value. A moving averagevalue obtained thus and timing data is used to obtain square-lawinterpolation data, which interpolates pieces of amplitude data onsample points having a time interval indicated by the timing data, asexpansion data.

[0028] In another aspect of the third invention, on the compressionside, inputted digital data is rounded by a first value, the digitaldata rounded by the first value is differentiated and a point where adifferential value changes in polarity is detected as a sample point.Digital data rounded by a second value, which is larger than the firstvalue, is obtained as discrete compressed amplitude data on samplepoints.

[0029] In another aspect of the third invention, on the compressionside, the compressed amplitude difference data and the timing data areconverted to variable-length block data.

[0030] In another aspect of the third invention, on the expansion side,the compressed amplitude difference data oversampled by even-numberedtimes is reversed in sign at an intermediate position of each sectionbetween sample points, the section being indicated by the timing data.Data strings obtained thus are subjected to multiple integral.

[0031] In another aspect of the third invention, on the expansion side,multiple integral and a moving average operation are performed in eachsection between sample points on the compressed amplitude differencedata oversampled by even-numbered times.

[0032] According to the third invention configured thus, when a signalon a time base is compressed, the operation can be performed on a timebase without performing time/frequency conversion on a frequency axis.Besides, when data compressed thus is expanded as well, the operationcan be performed on a time base. Therefore, it is possible to simplifycompression and expansion, to shorten an operating time, and to simplifythe configuration for the operations. Also, during expansion, a simplesquare-law interpolating operation on a time base can sequentiallyprocess and reproduce inputted compressed data without using tableinformation, thereby realizing real-time operations.

[0033] Furthermore, according to the third invention, compressed datacan be generated from only few pieces of discrete data that include anamplitude data value on a sample point where digital data has adifferential value changing in polarity and a timing data valueindicative of a time interval of sample points. Besides, since amplitudedata on sample points is rounded by a predetermined value, it ispossible to shorten a data length of amplitude data by several bits perword, thereby largely reducing an amount of data. Additionally, in thethird invention, rounded amplitude data is not used as compressed datadirectly but difference data is further determined as compressed data.Hence, it is possible to further reduce the number of bits required forcompressed data, thereby reducing an amount of data.

[0034] Moreover, according to other characteristics of the thirdinvention, compressed amplitude difference data and timing data that areobtained thus are encoded to variable-length block data as finalcompressed data. Thus, compressibility can be further increased.

[0035] Besides, according to the third invention, an inflection pointexisting in a signal to be compressed is detected as a sample point, andcompressed data includes all minimum points required for reproducingoriginal data by an interpolating operation on the expansion side.Therefore, it is possible to increase reproducibility of original data,thereby obtaining high-quality reproduced data.

[0036] Additionally, according to another characteristic of the thirdinvention, digital data rounded by a suitable value is differentiated todetect a sample point. Hence, it is possible to prevent positions ofnoise components and unnecessary signal components from being detectedas sample points, thereby positively detecting only correct positions assample points. Therefore, as for expansion data reproduced on theexpansion. side, it is possible to improve reproducibility of originaldata before compression.

[0037] Further, according to another characteristic of the thirdinvention, compressed amplitude difference data oversampled byeven-numbered times is reversed in sign at an intermediate position ofeach section between sample points. Hence, when multiple integral and amoving average operation are performed on data strings reversed in sign,it is possible to compensate for a rounding error on the compressionside and to reproduce a digital waveform having more smoothly changingamplitude values.

[0038] Besides, according to another characteristic of the thirdinvention, on the expansion side, multiple integral is performed in eachsection between sample points. Thus, it is possible to eliminate anaccumulative error caused by integral, thereby reproducing a digitalwaveform more accurately.

BRIEF DESCRIPTION OF THE DRAWINGS

[0039]FIG. 1 is a diagram for explaining a compression method ofEmbodiment 1;

[0040]FIG. 2 is a diagram for explaining an decompression method ofEmbodiment 1;

[0041]FIGS. 3A and 3B are diagrams showing an interpolating principle ofthe present embodiment by taking out the section between time T1 and T2of FIG. 2;

[0042]FIG. 4 is a diagram showing an example of a sampling function;

[0043]FIG. 5 is a diagram showing the relationship between pieces ofdiscrete data and interpolation values therebetween;

[0044]FIG. 6 is a diagram for explaining an interpolating equation,which is a specific example of data interpolation on the expansion side;

[0045]FIG. 7 is a diagram showing the results of performing oversamplingand convolution on time T1 and T2 of FIG. 2;

[0046]FIG. 8 is a diagram showing another results of performingoversampling and convolution;

[0047]FIG. 9 is a block diagram showing an example of the configurationof a compression apparatus according to Embodiment 1;

[0048]FIG. 10 is a block diagram showing an example of the configurationof an average value interpolation data generating section shown in FIG.9;

[0049]FIG. 11 is a block diagram showing an example of the configurationof a timing synthesizer shown in FIG. 9;

[0050]FIG. 12 is a block diagram showing an example of the configurationof an decompression apparatus according to Embodiment 1;

[0051]FIG. 13 is a block diagram showing an example of the configurationof a compression apparatus according to Embodiment 2;

[0052]FIG. 14 is a block diagram showing an example of the configurationof an decompression apparatus according to Embodiment 2;

[0053]FIG. 15 is a diagram showing a digital basic waveform used inEmbodiment 2;

[0054]FIG. 16 is a diagram for explaining an example of the operation ofoversampling and convolution according to Embodiment 2;

[0055]FIG. 17 is a diagram showing a function generated from the digitalbasic waveform of FIG. 15;

[0056]FIG. 18 is a diagram showing an example of the configuration of anoversampling circuit shown in FIG. 13;

[0057]FIG. 19 is a diagram showing an example of digital data inputtedto the compression apparatus of Embodiment 2;

[0058]FIG. 20 is a diagram showing an example of data outputted bypassing digital data of FIG. 19 through an oversampling circuit of FIG.13;

[0059]FIG. 21 is a diagram showing an example of the configuration of adifferentiator shown in FIG. 13;

[0060]FIG. 22 is a diagram showing an example of data outputted bypassing oversampled data of FIG. 20 through the differentiator of FIG.13;

[0061]FIG. 23 is an explanatory drawing showing the operation for thecase where equal differential absolute values appear successively;

[0062]FIG. 24 is a block diagram showing an example of the configurationfor detecting a sample point by double differentiation;

[0063]FIG. 25 is a diagram showing an example of compressed dataoutputted by passing the oversampled data of FIG. 20 through acompressed data generating section of FIG. 13;

[0064]FIGS. 26A and 26B are diagrams for explaining another example ofdata interpolation on the expansion side;

[0065]FIG. 27 is a diagram showing an example of expansion dataoutputted from an expanding section of FIG. 14 when expansion isperformed on the compressed data of FIG. 25;

[0066]FIG. 28 is a block diagram showing an example of the configurationof a compression apparatus according to Embodiment 3;

[0067]FIG. 29 is a diagram for explaining the operating principles of atiming generator and an amplitude generator of FIG. 28;

[0068]FIG. 30 is a block diagram showing an example of the configurationof the timing generator shown in FIG. 28;

[0069]FIG. 31 is a diagram showing a detailed example of theconfiguration of a part for generating a timing pulse;

[0070]FIG. 32 is a diagram for explaining an example of an actualcompression operation performed by the compression apparatus ofEmbodiment 3;

[0071]FIGS. 33A and 33B are diagrams showing an example of theconfiguration of serial compressed block data according to Embodiment 3;

[0072]FIG. 34 is a block diagram showing an example of the configurationof an decompression apparatus according to Embodiment 3;

[0073]FIG. 35 is a diagram showing a detailed example of theconfiguration of a square-law interpolation data generating section ofFIG. 34;

[0074]FIG. 36 is a diagram for explaining an example of an actualdecompression operation performed by the decompression apparatus ofEmbodiment 3; and

[0075]FIG. 37 is a diagram showing an example of original data beforecompression and expansion data.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0076] Hereinafter, an embodiment of the present invention will bediscussed in accordance with the accompanied drawings.

[0077] (Embodiment 1)

[0078]FIG. 1 is a diagram for explaining a compression method ofEmbodiment 1 and showing an example of an input analog signal to becompressed. Further, FIG. 2 is a diagram for explaining an decompressionmethod of the present embodiment.

[0079] First, referring to FIG. 1, the compression operation will bediscussed. In the present embodiment, points 102 a to 102 f(hereinafter, referred to as sample points), on which differentialabsolute values (inclination of a signal) are at a predetermined valueincluding “0” or smaller, are detected from an input analog signal 101.And then, digital data values, which are obtained by performinganalog-digital conversion on amplitude of the sample points 102 a to 102f, and timing data values, which are indicative of time intervals of thesample points 102 a to 102 f, are obtained. A pair of the amplitude datavalue and the timing data value is transmitted or recorded as compresseddata.

[0080] In the example of FIG. 1, “7, 3, 9, 1, 6, 3” are obtained asdigital amplitude data values on the sample points 102 a to 102 f, and“5, 7, 3, 3, 3” are obtained as timing data indicative of time intervalsbetween time T1 and T2, time T2 and T3, time T3 and T4, time T4 and T5,and time T5 and T6 of the sample points 102 a to 102 f. Here, numbersshown as timing data indicate the number of clocks that depends upon asampling frequency.

[0081] At time T1, an amplitude data value “7” on the sample point 102 aand a timing data value (not shown), which is indicative of a timeinterval from when a sample point (not shown) is previously detected,are obtained. Thus, a pair of the data values is transmitted or recordedas compressed data of time T1.

[0082] Next, at time T2 when the sample point 102 b is detected, atiming data value “5”, which is indicative of a time interval from timeT1 when the sample point 102 a is previously detected, and an amplitudedata value “3” on the sample point 102 b are obtained. Thus, a pair ofthe data values (5, 3) is transmitted or recorded as compressed data oftime T2.

[0083] Next, at time T3 when the sample point 102 c is detected, atiming data value “7”, which is indicative of a time interval from timeT2 when the sample point 102 b is previously detected, and an amplitudedata value “9” on the sample point 102 c are obtained. Thus, a pair ofthe data values (7, 9) is transmitted or recorded as compressed data oftime T3.

[0084] In a similar manner, as compressed data of time T4, T5, and T6,(3, 1), (3, 6), and (3, 3), which are pairs of timing data values andamplitude data values, are transmitted or recorded. The timing datavalues are indicative of time intervals between time T3 and T4, time T4and T5, and time T5 and T6, and the amplitude data values are detectedon the sample points 102 d, 102 e, and 102 f at time T4, T5, and T6.

[0085] Subsequently, referring to FIG. 2, the following will discuss andecompression operation of data compressed as shown in FIG. 1. When theinput analog signal 101 is compressed according to the method of FIG. 1,a numeral series of (*, 7), (5,3), (7,9), (3,1), (3,6), and (3, 3) isobtained as compressed data. Here, * indicates that no value is shown inFIG. 1. Compressed data is inputted to an expansion side in the aboveorder.

[0086] On the expansion side, data of a waveform a1 is generated by aninterpolating operation from two data values of a firstly inputtedamplitude data value “7” and a timing data value “5”. Next, data of awaveform a2 is generated by interpolation from two data values of theabove timing data value “5” and a subsequently inputted amplitude datavalue “3”.

[0087] And then, from two data values of the above amplitude data value“3” and a subsequently inputted timing data value “7”, data of awaveform b2 is generated by interpolation. Further, from the abovetiming data value “7” and a subsequently inputted amplitude data value“9”, data of a waveform b1 is generated by interpolation. In a similarmanner, from pairs of sequentially inputted amplitude data values andtiming data values, data of waveforms c1, c2, d2, d1, e1, and e2 isgenerated sequentially.

[0088] The above operation produces a digital signal (upper stage ofFIG. 2) having the waveforms a1, b1, c1, d1, and e1 continuously formed,and a digital signal (lower stage of FIG. 2) having the waveforms a2,b2, c2, d2, and e2 formed continuously. And then, the two digitalsignals produced thus are added to each other and are subjected todigital-analog conversion. Hence, the original analog signal of FIG. 1is reproduced.

[0089]FIGS. 3A and 3B show a section between time T1 and T2 of FIG. 2.FIG. 3A shows the two waveforms a1 and a2 before addition. FIG. 3B showsa synthetic waveform a1+a2 reproduced by addition.

[0090] In FIG. 3A, reference numeral D1 denotes an amplitude data value(“7” in the example of FIG. 2) at time T1, reference numeral D2 denotesan amplitude data value (“3” in the example of FIG. 2) at time T2,reference character T denotes a timing data value (“5” in the example ofFIG. 2) indicative of a time interval between time T1 and T2, andreference character t denotes arbitrary timing between time T1 and T2.

[0091] As shown in FIG. 3A, data of the waveform a1 is generated byinterpolation using an amplitude data value D1 at time T1 and a timingdata value T indicative of a time interval between time T1 and T2 whilean arbitrary timing t between time T1 and T2 acts as a variable, thatis, while a value of timing t is incremented one by one according to aclock based on a sampling frequency.

[0092] Moreover, data of the waveform a2 is generated by interpolationusing an amplitude data value D2 at time T2 and a timing data value Tindicative of a time interval between time T1 and T2 while the timing tsimilarly acts as a variable.

[0093] And then, pieces of data of the waveforms a1 and a2 generatedthus are added to each other while the timing t acts as a variable.Hence, a waveform of FIG. 3B is synthesized. In this manner, theoriginal analog signal before compression can be reproduced.

[0094] The following will discuss a principle of reproducing theoriginal analog signal by the decompression operation using the aboveinterpolation.

[0095] In general, in order to obtain a continuous analog signal fromdiscrete digital data, interpolation is performed between pieces ofdigital data inputted in a discrete manner and a sampling frequency isincreased artificially. Such data interpolation is normally performedusing a predetermined sampling function.

[0096]FIG. 4 shows an example of a sampling function. In the example ofFIG. 4, a value is set at “1” only on a sampling point of t=0, andvalues are all set at “0” on other sampling points (t=±1, ±2, ±3, ±4, .. . ) having regular intervals.

[0097]FIG. 5 is a diagram for explaining a typical operation of datainterpolation using such a sampling function. In FIG. 5, it is assumedthat sampling points t1, t2, t3, and t4 at regular intervalsrespectively have discrete data values of Y(t1), Y(t2), Y(t3), and Y(t4)and, for example, an interpolation value y is determined, whichcorresponds to a predetermined position to (distance a from t2) betweenthe sampling points t2 and t3.

[0098] In general, when an interpolation value y is obtained using asampling function, a value of a sampling function on an interpolatingposition t0 is obtained for each of provided pieces of discrete data,and a convoluting operation is carried out using the values. To bespecific, each of the sampling points t1 to t4 is caused to have anequal peak height at the center of a sampling function. A samplingfunction value (indicated by x) is computed for each of the samplingpoints at the interpolating position t0, and all the values are added.

[0099] Such interpolation is carried out while the interpolatingposition to is moved sequentially with the passage of time (inaccordance with increment of a sampling clock). Thus, an interpolationvalue y (t0), which varies continuously, is computed in a sequentialmanner. Hence, it is possible to obtain a continuous analog signal forconnecting pieces of discrete data smoothly.

[0100] The present embodiment applies such data interpolation. Namely,as shown in FIG. 3A, the waveform a1 is obtained, which forms a part ofa sampling function having a value other than “0” on a first samplepoint (time T1), from an amplitude data value D1 (=7) and a timing datavalue T (=5) that have already been inputted at time T2. Further, thewaveform a2 is obtained, which forms a part of a sampling functionhaving a value other than “0” on a second sample point (time T2), froman amplitude data value D2 (=3) and a timing data value T (=5).

[0101] And then, the values of the waveforms a1 and a2 are added on eachinterpolating position t, which sequentially moves with the passage oftime. Thus, it is possible to obtain a continuous analog signal forconnecting discrete data D1 and D2 smoothly.

[0102] Besides, the present embodiment describes that pieces of data ofthe waveforms a1 and a2 are added to each other after they are obtained.It is also possible to obtain a synthetic waveform at one time by usinga predetermined equation and so on because data for generating andsynthesizing the waveforms a1 and a2 is all obtained at time T2.

[0103] Incidentally, in the present embodiment, as shown in FIG. 1,discrete data serving as compressed data is obtained by sampling theinput analog signal 101, which varies smoothly, on the compression sideat time intervals of points on which differential absolute values are ata predetermined value or smaller. Therefore, the sample points on whichdiscrete data is obtained are not always evenly spaced and the intervalsbecome irregular in many cases (in the example of FIG. 1 as well, thesample points are unevenly spaced in “5, 7, 3, 3, 3”) Hence, on theexpansion side of FIG. 2, for example, when an interpolation valuebetween time T1 and T2 is computed, as shown in FIG. 3, the aboveconvoluting operation is performed by using only sampling functions a1and a2 at a time interval between the sample points of the time T1 andT2. Other sampling functions b1, b2, c1, c2, d1, d2, e1, and e2 havingdifferent time intervals between sample points are not taken intoconsideration when the convoluting operation is carried out.

[0104] Moreover, for example, when an interpolation value is computedbetween time T2 and T3, a convoluting operation is performed by usingonly sampling functions b1 and b2 at a time interval (=7) between samplepoints of time T2 and T3. Other sampling functions a1, a2, c1, c2, d1,d2, e1, and e2, which have different time intervals between samplepoints, are not taken into consideration when the convoluting operationis carried out. This holds true when interpolation values are obtainedbetween other sample points.

[0105] Namely, in the compression/decompression system of the presentembodiment, on the compression side, the input analog signal 101 varyingsmoothly is sampled at irregular time intervals having differentialabsolute values at a predetermined value or smaller. Thus, discreteamplitude data values and timing data values indicative of irregulartime intervals are obtained as compressed data. Further, on theexpansion side, according to the amplitude data values and the timingdata values in compressed data, a continuous analog signal is generated,which connects pieces of discrete data at time intervals as irregular asthe compression side, by interpolation using the above samplingfunctions.

[0106] Next, the following will discuss a specific example of the abovedata interpolation. As described above, for example, when aninterpolation value is obtained between time T1 and T2, only thesampling functions a1 and a2 are used, which are obtained from amplitudedata values in time T1 and T2 and a timing data value indicative of atime interval between time T1 and T2. Namely, data required forcomputing an interpolation value on each interpolating position tbetween time T1 and T2 is all obtained at time T2, so that it ispossible to reproduce the original analog signal shown in FIG. 3B atthis moment.

[0107] Therefore, in the present embodiment, every time two amplitudedata values D1 and D2 and a timing data value T indicative of a timeinterval therebetween are obtained for each discrete time of T1 to T6,an interpolation value is computed by using the data values according toan interpolating equation, which will be discussed later. Hence, theoriginal analog signal is reproduced sequentially. FIG. 6 is a diagramfor explaining the interpolating equation.

[0108] As shown in FIG. 6, an interpolation value between two samplepoints having amplitude data values of D1 and D2 can be represented by afunction in which two quadratic functions x1 and x2 regarding aninterpolating position t are connected at an intermediate point. Namely,in the present embodiment, a part between two sample points is dividedinto a first half and a second half, and interpolation values thereofare respectively computed using the quadratic functions x1 and x2.

[0109] A timing data value T, which is a time interval between thesample points, may be an odd number or an even number. In the case of anodd number, an interpolating position t may not be set at anintermediate point. Therefore, in the present embodiment, an obtainedtiming data value is always set at an even number by performing doubleoversampling upon compression. Namely, the five timing data values“5,7,3,3,3” of FIG. 1 are transmitted or stored actually as values of“10,14,6,6,6” by double oversampling. In FIG. 6, a time interval betweenthe sample points is represented by 2T obtained after oversampling.

[0110] In FIG. 6, the two quadratic functions x1 and x2 are respectivelyrepresented by the following equations.

x1=D1+at ²  (1)

x2=D2−a (t−2T)²  (2)

[0111] Moreover, since the functions x1 and x2 are connected at theintermediate point T of the successive sample points, the followingequation is established.

x1=x2 (t=T)  (3)

[0112] Here, when equations (1) and (2) are substituted for equation(3), the following equation is established.

D1+aT ²=D2−aT ²  (4)

[0113] When equation (4) is solved for a, the following equation isestablished.

a=−(D1−D2)/2T²  (5)

[0114] Therefore, the following equations are established bysubstituting equation (5) for equations (1) and (2).

x1=D1−{(D1−D2)/2T² } t ²  (6)

x2=D2+{(D1−D2)/2T²}(2T−t)²  (7)

[0115] Namely, the original analog signal can be reproduced byperforming equations (6) and (7) while an interpolating position tserves as a variable, which is sequentially incremented according to aclock of a doubled sampling frequency. In the present embodiment, suchan interpolating operation is performed sequentially every time a signalline composed of an amplitude data value and a timing data value isinputted at each of discrete time T1 to T6.

[0116] Namely, in the example of FIG. 2, when amplitude data values onthe samples points at time T1 and T2 and a timing data valuetherebetween are inputted, an interpolating operation is performedbetween the sample points so as to immediately reproduce the originalanalog signal. Further, when an amplitude data value on a sample pointat time T3 and a timing data value between the sample points T2 and T3are inputted, an interpolating operation is performed therebetween so asto immediately reproduce the original analog signal. The same operationis sequentially performed at the following time.

[0117] As described above, according to the present embodiment, it ispossible to directly compress and expand an analog signal to becompressed on a time base without time/frequency conversion. Hence, itis also possible to simplify the configuration without complicatedoperations. Further, when compressed data is transmitted from thecompression side and is reproduced on the expansion side, inputtedcompressed data can be sequentially processed and reproduced by a simpleinterpolating operation on a time base, thereby achieving real-timeoperations.

[0118] Besides, the interpolating operation represented by the aboveequations (6) and (7) can also be realized by hardware such as a logiccircuit and by DSP (Digital Signal Processor) or software (a programstored in ROM, RAM, and the like).

[0119] The following will discuss another example of the above datainterpolation. Here is the description of a method of computing aninterpolation value by double oversampling and convolution that useamplitude data values D1 and D2 on successive sample points and a timingdata value T therebetween FIG. 7 is a diagram showing the results ofperforming oversampling and convolution (D1=7, D2=3, T=5) on time of T1and T2 of FIG. 2.

[0120] In FIG. 7, a number “4” on the leftmost series r1 indicates adifference value (=D1−D2) of two amplitude data values D1 and D2. Theten “4” are arranged in a vertical direction to indicate that adifference value of the amplitude datavalues D1 and D2 is stored inD-type flip flops (not shown) making cascade connection while beingsequentially delayed by one clock. The number of the D-type flip flopsis twice a timing data value T=5.

[0121] Further, the second numeral series r2 from the left indicates theresult of shifting the sample values of the first column r1 by oneclock. Moreover, the third to fifth numeral series r3, r4, and r5indicate the results of further shifting the sample values of the secondnumeral series r2 sequentially by one clock.

[0122] Besides, the sixth numeral series r6 indicates the result ofadding the first to fifth numeral series r1 to r5 on each correspondingrow, that is, the result of performing five-stage convolution on thefirst to fifth numeral series r1 to r5. Also, the seventh to tenthnumeral series r7, r8, r9, and r10 indicate the results of furthershifting the sample values of the sixth column r6 sequentially by oneclock after convolution.

[0123] Also, the eleventh numeral series r11 indicates the result ofadding the sixth to tenth numeral series r6 to r10 on each correspondingrow, that is, the result of performing five-stage convolution on thesixth to tenth numeral series r6 to r10.

[0124] Further, the twelfth numeral series r12 indicates the result offurther shifting the sample values of the eleventh numeral series r11 byone clock after convolution.

[0125] Further, the thirteenth numeral series r13 indicates the resultof adding the eleventh and twelfth numeral series r11 and r12 on eachcorresponding row. When the thirteenth numeral series r13 obtained byaddition is represented by Mt, an interpolation value SOUT forinterpolating two amplitude data values D1 and D2 is expressed by thefollowing equation.

S _(OUT)=D1−M1 (D1−D2)/(8T?T)=7−Mt/50

[0126] The interpolation value S_(OUT) is plotted as shown in the graphof FIG. 7, and the same analog signal can be reproduced as time T1 andT2 of FIG. 1.

[0127] Incidentally, when two amplitude data values D1 and D2 arereversed between a small value and a large value, for example, in thecase of D1=3 and D2=7, double oversampling and convolution are performedas shown in FIG. 8.

[0128] The original analog signal of FIG. 1 can be reproduced byperforming such data interpolation sequentially between all samplepoints. Additionally, the operations of FIGS. 7 and 8 can be performedby hardware having a plurality of D-type flip flops, adders, andmultipliers that are combined as necessary for storing data values whilemaking one-clock delay.

[0129] Next, the following will discuss a configuration for realizingthe above-mentioned compression and expansion. FIG. 9 is a block diagramshowing an example of the configuration of a compression apparatusaccording to the present embodiment.

[0130] In FIG. 9, in order to readily detect a sample point, the inputanalog signal 101 is converted to digital data by an A/D converter 104after noise is removed by an LPF 103. At this moment, the A/D converter104 performs A/D conversion according to a clock CK1 having a doublefrequency (88.2 KHz). The clock CK1 is generated by a PLL (Phase LockedLoop) circuit 105 from an input clock CK0 having a predeterminedfrequency (e.g., 44.1 KHz in the case of an aural signal).

[0131] An average value interpolation data generating section 106performs oversampling with a double frequency on digital data outputtedfrom the A/D converter 104. And then, regarding a plurality of samplevalues obtained thus, average values are computed between successivesample values to generate interpolation data. Namely, when inputteddigital data undergoes oversampling, a numeral series having the sametwo values successively is obtained. Regarding such a numeral series,when an average value is computed by using the same successive values,the values remain the same. When an average value is computed by usingdifferent successive values, an intermediate value is obtained betweenthe different values.

[0132]FIG. 10 is a block diagram showing an example of the configurationof the average value interpolation data generating section 106. In FIG.10, a D-type flip flop 201 stores digital data, which is outputted fromthe A/D converter 104 of FIG. 9, according to a reference input clockCK0. Further, a D-type flip flop 202 connected to the subsequent stagestores digital data, which is outputted from the D-type flip flop 201,according to a clock CK1 having a frequency twice that of the aboveinput clock CK0.

[0133] And then, an adder 203 adds digital data stored in the two D-typeflip flops 201 and 202, and outputs the results to a half multiplier204. The half multiplier 204 divides the addition results of the adder203 by a factor of 2, and a D-type flip flop 205 stores the resultsaccording to the clock CK1 having a double frequency. Subsequently, thedigital data stored in the D-type flip flop 205 is outputted asinterpolation data generated by double oversampling.

[0134] Since such an average value interpolation data generating section106 is provided, it is possible to always set a timing data value at aneven number. The timing data value is indicative of a time intervalbetween sample points having differential absolute values at apredetermined value or smaller. Thus, it is not necessary to separatelyperform complicated operations for an even number and an odd number.Besides, in addition to oversampling, an average value of successivesample values is computed and outputted. Hence, a stepwise data waveformcan be formed into a smooth waveform close to the original analogwaveform. Therefore, it is possible to improve reproducibility of theoriginal analog signal when expansion is performed by an decompressionapparatus, which will be discussed later.

[0135] Digital data undergoing oversampling in the average valueinterpolation data generating section 106 is inputted to a timingsynthesizer 107 and a compressing section 108. The timing synthesizer107 differentiates digital data supplied from the average valueinterpolation data generating section 106 and detects sample points. Andthen, the timing synthesizer 107 computes and outputs a sampling clockindicative of timing of the detected point and timing data (the numberof clocks CK1 having a double frequency) indicative of a time intervalbetween the sample points.

[0136]FIG. 11 is a block diagram showing an example of the configurationof the timing synthesizer 107. In FIG. 11, a differentiator 301differentiates digital data inputted from the average valueinterpolation data generating section 106. Further, a sample pointdetecting section 302 detects sample points, on which digital data hasdifferential absolute values at a predetermined value or smaller, basedon the differentiation results of the differentiator 301.

[0137] A timing generating section 303 counts the number of clocks CK1having a double frequency. The clocks CK1 are supplied from when asample point is detected to when a subsequent sample point is detected.The timing generating section 303 outputs the number as timing data andoutputs a sampling clock indicative of timing of a detected point ofeach sample point. Also, the timing generating section 303 alsogenerates and outputs a reading clock, which will be discussed later.

[0138] Moreover, the compressing section 108 takes out only digital dataon the corresponding sample point and outputs it as amplitude dataaccording to a sampling clock outputted from the timing synthesizer 107.A FIFO memory 109 captures a pair of amplitude data on each sample pointand timing data indicative of a time interval between sample points,according to a sampling clock. The amplitude data is outputted from thecompressing section 108 and the timing data is outputted from the timingsynthesizer 107. And then, the FIFO memory 109 reads the data in orderaccording to a reading clock. A pair of amplitude data and timing datathat is read therefrom is transmitted or recorded as compressed data.

[0139]FIG. 12 is a block diagram showing an example of the configurationof the decompression apparatus of the present embodiment. In FIG. 12, aclock generator 401 generates a clock CK1 having a double frequency froma reference input clock CK0. Besides, a timing generator 402 generates areading clock, which is indicative of time intervals as irregular as thesample points detected on the compression side, from the clock CK1having a double frequency in response to timing data included incompressed data.

[0140] A D-type flip flop 403 captures and stores in order amplitudedata, which is included in compressed data, at timing according to areading clock generated by the timing generator 402, and the D-type flipflop 403 outputs the amplitude data to an expanding section 404.Amplitude data on an input/output stage of the D-type flip flop 403,that is, amplitude data stored in the D-type flip flop 403 at timing ofa reading clock and amplitude data to be stored in the D-type flip flop403 at timing of a subsequent reading clock (two pieces of amplitudedata on two successive sample points) are inputted to the expandingsection 404.

[0141] The expanding section 404 generates digital interpolation databetween sample points by an interpolating operation of the aboveequations (6) and (7) or convolution shown in FIGS. 7 and 8, by usingtwo pieces of amplitude data inputted thus and timing data inputted fromthe timing generator 402. And then, after digital interpolation datagenerated thus is converted to an analog signal by a D/A converter 405,the signal is outputted as a reproduced analog signal via an LPF 406.

[0142] As specifically described above, in the present embodiment, sincean input analog signal varying smoothly is sampled on the compressionside at irregular time intervals having differential absolute values ata predetermined value or smaller, it is possible to obtain discreteamplitude data values and timing data values indicative of irregulartime intervals as compressed data. And then, on the expansion side,according to amplitude data values and timing data values that areincluded in compressed data, discrete data is read at time intervals asirregular as the compression side, and an analog signal is outputted,which connects pieces of the data by interpolation.

[0143] Therefore, when an analog signal on a time base is compressed andexpanded, processing can be carried out on a time base without frequencyconversion. For this reason, compression and expansion is notcomplicated and the configuration thereof can be simplified. Further,when compressed data is transmitted from the compression side andreproduced on the expansion side, compressed data to be inputted to theexpansion side can be processed and reproduced in order by a simpleinterpolating operation on a time base, thereby achieving real-timeoperations.

[0144] Moreover, in the present embodiment, points where digital datahas differential absolute values at a predetermined value or smaller aredetected as sample points, compressed data is generated from amplitudedata values on the detected sample points and timing data valuesindicative of time intervals of the sample points, and the compresseddata is transmitted or recorded. Hence, only data on the sample pointscan be obtained as compressed data, achieving a high compressibility.

[0145] Furthermore, according to the present embodiment, inflectionpoints, which exist in a signal to be compressed, are detected as samplepoints. Thus, compressed data includes all minimum points required forreproducing original data by an interpolating operation on the expansionside. Therefore, it is possible to obtain high-quality reproduced datawith a higher reproducibility of original data.

[0146] Additionally, although Embodiment 1 describes that an inputsignal to be compressed is an analog signal, an input signal may be adigital signal. In this case, the LPF 103 and the A/D converter 104 ofFIG. 9 are not necessary, and the D/A converter 405 and the LPF 406 ofFIG. 12 are not necessary.

[0147] Besides, although the average value interpolation data generatingsection 106 performs double oversampling in Embodiment 1, the multipleis not limited to double as long as it is even.

[0148] (Embodiment 2)

[0149] Hereinafter, Embodiment 2 of the present invention will bediscussed in accordance with the accompanied drawings. Embodiment 2 isdevised to input and compress digital data. In a compression apparatusof the present embodiment, n-times oversampling and a moving averageoperation or a convoluting operation (hereinafter, referred to asconvolution) are performed on inputted digital data to be compressed.Hence, it is possible to obtain smoother data in which pieces ofdiscrete data are connected by interpolation.

[0150] Subsequently, from a series of data obtained thus, a positionhaving a differential absolute value smaller than previous andsubsequent positions, that is, a position having a minimum differentialabsolute value is detected as a sample point. And then, an amplitudedata value on each detected sample point and a timing data valueindicative of a time interval of the sample points are obtained, and apair of the amplitude data value and the timing data value istransmitted or recorded as compressed data.

[0151]FIG. 13 is a block diagram showing an example of the entireconfiguration of a compression apparatus for realizing the abovecompression method according to the present embodiment.

[0152] As shown in FIG. 13, the compression apparatus of the presentembodiment is constituted by an oversampling circuit 1, a PLL (PhaseLocked Loop) circuit 2, a differentiator 3, a compressed data generatingsection 4, an error correction coding section 5, and a data memory 6.

[0153] The oversampling circuit 1 performs n-times oversampling andconvolution on inputted digital data to be compressed so as to compute adigital interpolation value for connecting pieces of discrete data. Inthe example of FIG. 13, as data to be compressed, the oversamplingcircuit 1 inputs voice data sampled at a frequency of 44.1 KHz, performsoversampling on the data at an eight-times frequency (352.8 KHz), andperforms convolution. And then, the oversampling circuit 1 outputs aseries of oversampled data obtained thus to the differentiator 3 and thecompressed data generating section 4.

[0154] The PLL circuit 2 generates a clock 8CLK having an eight-timesfrequency (352.8 KHz) from an input clock CLK having a referencefrequency (44.1 KHz) and supplies the clock 8CLK to the compressed datagenerating section 4, the error correction coding section 5, and thedata memory 6 as well as the above oversampling circuit 1. Theoversampling circuit 1, the compressed data generating section 4, theerror correction coding section 5, and the data memory 6 operate insynchronization with the clock 8CLK having an eight-times frequency.

[0155] The differentiator 3 differentiates a series of oversampled datagenerated in the oversampling circuit 1 on each sampling point, andcomputes an absolute value thereof and outputs it to the compressed datagenerating section 4.

[0156] The compressed data generating section 4 detects as a samplepoint a position having a differential absolute value smaller thanprevious and subsequent positions, from a series of oversampled datasupplied from the oversampling circuit 1. And then, a pair of anamplitude data value on each detected sample point and a timing datavalue indicative of a time interval of sample points is outputted to theerror correction coding section 5. The compressed data generatingsection 4 also obtains a timing clock indicative of timing of a detectedpoint on each sample point and outputs it to the data memory 6.

[0157] The error correction coding section 5 adds an error correctingcode to data supplied from the compressed data generating section 4 inorder to detect and accurately correct a varied bit even when digitaldata on a transmission line or a memory is changed by noise and the likeand an error occurs. And then, the data obtained thus is outputted to atransmission line or the data memory 6 as compressed data.

[0158] The data memory 6 is a record medium for storing compressed data.The data memory 6 records compressed data, which is generated by theerror correction coding section 5, according to a timing clock from thecompressed data generating section 4. Further, the data memory 6 readsand outputs stored compressed data in response to a reading requestsignal REQ supplied from outside.

[0159]FIG. 14 is a block diagram showing an example of the entireconfiguration of an decompression apparatus for realizing andecompression method corresponding to the above compression methodaccording to the present embodiment.

[0160] As shown in FIG. 14, the decompression apparatus of the presentembodiment is constituted by an error correcting circuit 11, a clockgenerator 12, a timing generator 13, a D-type flip flop 14, an expandingsection 15, a D/A converter 16, and a low-pass filter (LPF) 17.

[0161] The error correcting circuit 11 inputs compressed data generatedin the compression apparatus of FIG. 13, detects a bit varied on atransmission line or memory, and corrects an error, by using an errorcorrecting code added to the data.

[0162] The clock generator 12 generates a clock 8CLK having aneight-times frequency from an input clock CLK having a referencefrequency and supplies the clock 8CLK to the timing generator 13, theexpanding section 15, and the D/A converter 16. Also, thetiming-generator 13 receives from the error correcting circuit 11 timingdata included in compressed data, generates a reading clock, which isindicative of time intervals as irregular as sample points detected onthe compression side, from the clock 8CLK having an eight-timesfrequency, and supplies the reading clock to the error correctingcircuit 11 and the D-type flip flop 14.

[0163] The D-type flip flop 14 sequentially captures and storesamplitude data, which is included in compressed data, from the errorcorrecting section 11 at timing corresponding to a reading clockgenerated by the timing generator 13, and the D-type flip flop 14outputs the amplitude data to the expanding section 15. Amplitude dataof an input/output stage of the D-type flip flop 14, that is, amplitudedata stored in the D-type flip flop 14 at timing of a reading clock andamplitude data to be stored in the D-type flip flop 14 at timing of thesubsequent reading clock (two pieces of amplitude data on two successivesample points) are inputted to the expanding section 15.

[0164] The expanding section 15 generates digital interpolation databetween the sample points by an interpolating operation and so on, whichwill be discussed later, using two pieces of amplitude data inputtedthus and timing data inputted by the timing generator 13. The D/Aconverter 16 converts digital interpolation data generated thus to ananalog signal. Further, the LPF 17 performs a low-pass filter operationon an analog signal outputted from the D/A converter 16 so as to removenoise, and the analog signal is outputted as a reproduced analog signal.

[0165] Next, the following will discuss the details of the configurationand operations of the oversampling circuit 1 in the compressionapparatus of FIG. 13.

[0166] Here, before describing the oversampling method of the presentembodiment for computing an interpolation value between pieces ofdiscrete digital data, a typical interpolating method conventionallyused will be firstly discussed.

[0167] Data interpolation, which interpolates pieces of discrete digitaldata to obtain more continuous pieces of data, is carried out as shownin FIG. 5 by using, for example, a sampling function referred to as asinc function of FIG. 4. The sinc function is defined as sin (?ft)/(?ft)when a sampling frequency is f. A value is set at 1 only on a samplingpoint of t=0, and values are all set at 0 on all of the other samplingpoints (t=1, ±2, ±3, ±4, . . . ) disposed at regular intervals.

[0168] Unlike a typical data interpolating method using such a sincfunction, in the oversampling circuit 1 of the present embodiment, whenan interpolation value is computed between two pieces of discrete data,each piece of digital data of a basic waveform undergoes oversampling.The waveform has amplitudes corresponding to n pieces of discrete datavalues that include the two pieces of discrete data. Further, theobtained n pieces of data are synthesized by convolution so as todigitally compute an interpolation value for connecting the two piecesof discrete data.

[0169]FIG. 15 is an explanatory drawing showing a digital basic waveformused in the present embodiment. The digital basic waveform of FIG. 15 isa basic sampling function, which is used when data is interpolated byover sampling. The digital basic waveform is formed by changing a datavalue to −1, 1, 8, 8, 1, and −1 for each clock (CLK) having a referencefrequency.

[0170] Referring to FIG. 16, the following will discuss a principle ofdata interpolation according to the present embodiment, by taking as anexample the case where an interpolation value is generated by n-timesoversampling and convolution from discrete data values (−1, 1, 8, 8, 1,−1)/8, which correspond to a normalized digital basic waveform shown inFIG. 15. Besides, in consideration of a space of the drawing, FIG. 16shows an example of four-times oversampling. The oversampling circuit 1of FIG. 13 actually performs eight-times oversampling.

[0171] In FIG. 16, a numeral series shown on the leftmost side indicatesvalues obtained by performing four-times oversampling on originaldiscrete data values of (−1, 1, 8, 8, 1, −1)/8. Further, in four numeralseries from the leftmost side to the right, the values on the leftmostside are shifted downward one by one. A direction of the numeral seriesrepresents a time base in FIG. 16. Shifting a numeral series downward isequivalent to gradual delay of the numeral series indicated on theleftmost side.

[0172] Namely, the second numeral series from the left indicates anumeral series shifted from the leftmost numeral series by a quarterphase of a clock 4CLK having a quadruple frequency.

[0173] Moreover, the third numeral series from the left indicates anumeral series shifted from the second numeral series from the left by aquarter phase of the clock 4CLK having a quadruple frequency. The fourthnumeral series from the left indicates a numeral series shifted from thethird numeral series from the left by a quarter phase of the clock 4CLKhaving a quadruple frequency.

[0174] Further, the fifth numeral series from the left has valuesobtained by adding values of the first to fourth numeral series on eachof the corresponding rows and dividing the added values by four. Theoperations on the first to fifth numeral series from the left candigitally perform quadruple oversampling together with four-phaseconvolution.

[0175] Four numeral series from the fifth numeral series to the right(fifth to eighth numeral series from the left) indicate numeral seriesshifted downward one by one from the fifth numeral series. Also, theninth numeral series from the left has values obtained by adding valuesof the fifth to eighth numeral series on each of the corresponding rowsand dividing the added values by four. The operations on the first toninth numeral series from the left can digitally perform quadrupleoversampling twice together with four-phase convolution.

[0176] Further, the tenth numeral series from the left is a numeralseries shifted downward by one from the ninth numeral series. Besides,the eleventh numeral series (on the rightmost side) from the left hasvalues obtained by adding values of the ninth and tenth numeral serieson each of the corresponding rows and dividing the added values by two.The values on the rightmost side are target interpolation values.

[0177]FIG. 17 is a graph showing the finally obtained numeral series onthe rightmost side of FIG. 16. A function having a waveform of FIG. 17can be differentiated for one time throughout a range. The function hasa limited value other than 0 when a sampling position t along a lateralaxis is 1 to 33, and the function has values all set at 0 in otherregions.

[0178] When the function has a limited value other than 0 on a localregion and has 0 in other regions, the state is referred to as a“definite base”.

[0179] Also, the function of FIG. 17 is a sampling functioncharacterized by having a maximum value only on a sample point of t=17and a value of 0 on four sample points of t=1, 9, 25, 33. The functionpasses through all sample points required for obtaining data with asmooth waveform.

[0180] As described above, the function of FIG. 17 is a samplingfunction and differentiation is possible for one time throughout theregion. Additionally, the function has a definite base, which convergesto 0 at sampling positions of t=1, 33. Therefore, since superposition ismade by using the sampling function of FIG. 17 based on each piece ofdiscrete data, it is possible to interpolate a value between pieces ofdiscrete data by using the function, which can be differentiated for onetime.

[0181] The conventionally used sinc function converges to 0 on a samplepoint of t=±?. Thus, when an interpolation value is computed accurately,it is necessary to calculate a value of the sinc function on aninterpolating position for each piece of discrete data until t=±? and toperform a convoluting operation using the value. In contrast, thesampling function of FIG. 17 used in the present embodiment converges to0 on sample points of t=1, 33. Hence, only discrete data within a rangeof t=1 to 33 needs to be considered.

[0182] Therefore, when a certain interpolation value is obtained, onlyvalues of limited n pieces of discrete data need to be considered,thereby largely reducing an amount of processing. Additionally, discretedata beyond the range of t=1 to 33 is ignored. This is not because aprocessing quantity, accuracy, and so on need to be considered butbecause the discrete data does not need to be considered theoretically.Thus, a censoring error does not occur. Therefore, it is possible toaccurately obtain an interpolation value by using the data interpolationof the present embodiment and to improve the reproducibility of originaldata before compression regarding data reproduced on the expansion sidewhen compression is performed using the accurate interpolation value.

[0183]FIG. 18 is a block diagram showing an example of the configurationof the oversampling circuit 1 shown in FIG. 13. As shown in FIG. 18, theoversampling circuit 1 of the present embodiment is constituted by anormalized data memory 21, a phase shifting section 22, a plurality ofdigital multipliers 23 a to 23 d, and a plurality of digital adders 24 ato 24 c. Besides, a PLL circuit 2 of FIG. 18 is identical to that ofFIG. 13.

[0184] The normalized data memory 21 shifts a series of normalized datain four phases and stores the data as shown on the rightmost side ofFIG. 16. Additionally, FIG. 16 shows an example in which quadrupleoversampling is performed on the digital basic waveform of FIG. 15.Since the oversampling circuit 1 of FIG. 13 performs eight-timesoversampling, in the normalized data memory 21, a digital basic waveformundergoes eight-times oversampling and a series of data normalized byconvolution is stored therein. Four-phase normalized data stored in thenormalized data memory 21 is read in response, to clocks CLK and 8CLKsupplied from the PLL circuit 2, and the data is supplied to one of theinput terminals of each of the four digital multipliers 23 a to 23 d.

[0185] Moreover, the phase shifting section 22 performs a phase shiftingoperation for shifting the phase of discrete data, which is inputted asdata to be compressed, to four phases. Four-phase discrete datagenerated by the phase shifting section 22 is outputted in response tothe clocks CLK and 8CLK supplied from the PLL circuit 2, and the data issupplied to the other input terminal of each of the four digitalmultipliers 23 a to 23 d.

[0186] The four digital multipliers 23 a to 23 d multiply four-phasenormalized data, which is outputted from the normalized data memory 21,and four-phase discrete data, which is outputted from the phase shiftingsection 22. The three digital adders 24 a to 24 c, which are connectedto the subsequent stage of the multipliers, add all the multiplicationresults of the four digital multipliers 23 a to 23 d and output theresults of the addition to the differentiator 3 and the compressed datagenerating section 4 of FIG. 13.

[0187] In the configuration of the oversampling circuit 1 shown in FIG.18, the normalized data memory 21 constitutes storing means of thepresent invention. Further, the phase shifting section 22, the digitalmultipliers 23 a to 23 d, and the digital adders 24 a to 24 c constitutesynthesizing means of the present invention.

[0188] As shown in the configuration of FIG. 18, in the presentembodiment, the normalized data memory 21 such as ROM stores in advancenormalized data, which is obtained by convolution on the rightmost sideof FIG. 16. And then, the normalized data is modulated to amplitudecorresponding to a value of discrete data inputted as data to becompressed. The obtained data is synthesized by four-phase convolutionand is outputted.

[0189] An amplitude value of discrete data, which is inputted as data tobe compressed, may be multiplied relative to the digital basic waveformof FIG. 15, and convolution of FIG. 16 may be performed on an obtaineddata value during compression. In the case of the oversampling circuit 1configured as FIG. 18, it is not necessary to perform convolution ofFIG. 16 during actual compression, thereby increasing a compressionspeed.

[0190]FIG. 19 is a diagram showing an example of digital data inputtedto the oversampling circuit 1. FIG. 20 is a diagram showing output dataafter the oversampling circuit 1 performs data interpolation on thedigital data. As shown in the above diagram, with the oversamplingcircuit 1 of the present embodiment, it is possible to obtain continuousoversampled data, in which values change more smoothly, from originaldiscrete digital data.

[0191] Next, as for digital data undergoing such oversampling, thefollowing will discuss in detail the operation of generating compresseddata by using the differentiator 3 and the compressed data generatingsection 4 of FIG. 13, and the operation of decompression compressed databy using the timing generator 13, the D-type flip flop 14, and theexpanding section 15 of FIG. 14.

[0192] First, the compression operation will be discussed. As describedabove, the differentiator 3 of FIG. 13 differentiates a series ofoversampled data, which is generated in the oversampling circuit 1, oneach sampling point, and obtains an absolute value of the data andoutputs it to the compressed data generating section 4.

[0193]FIG. 21 is a diagram showing an example of the configuration ofthe differentiator 3. As shown in FIG. 21, the differentiator 3 of thepresent embodiment is composed of a difference absolute value circuitfor computing a difference absolute value between pieces of data on twosuccessive sampling points.

[0194] In FIG. 21, subtracters 31 and 32 respectively computedifferences between pieces of data on two successive sampling points,the data being inputted from nodes a and b. Namely, the subtracter 31computes a difference a−b, and the subtracter 32 computes a differenceb−a. The results are respectively outputted to OR circuits 33 and 34.The subtracters 31 and 32 output a value of “1” as a bollow in additionto difference values when computed difference values are negative.

[0195] The OR circuit 33 ORs a difference value and bollow output thatare computed in the subtracter 31, and outputs the results to an ANDcircuit 35. Moreover, the other OR circuit 34 ORs a difference value andbollow output that are computed in the subtracter 32, and outputs theresults to the AND circuit 35. The AND circuit 35 ANDs the outputs fromthe two OR circuits 33 and 34 and outputs the results to a node c. Also,the bollow output of the subtracter 31 is outputted to a node d, and adifference value computed in the subtracter 32 is outputted to a node e.

[0196] Therefore, a difference absolute value |a−b| of data on twosuccessive sampling points is outputted to the node c, a value of “1” isoutputted to the node d when a data value of the node b is larger thanthat of the node a, and a difference value b−a between pieces of data ofthe nodes a and b is outputted to the node e.

[0197] Besides, for explanation, FIG. 21 shows only one-bit data linesof the nodes a, b, c, and e. Actually, data lines are equivalent to thenumber of bits.

[0198] The compressed data generating section 4 of FIG. 13 detects as asample point a point where a differential absolute value is smaller thanthose of previous and subsequent positions, from a series of oversampleddata supplied from the oversampling circuit 1. And then, a pair of anamplitude data value on each detected sample point and a timing datavalue indicative of a time interval of sample points is outputted to theerror correction coding section 5.

[0199] In the present embodiment, when a sample point is detected basedon a differential absolute value computed in the differentiator 3, inorder to provide a margin for determining a sample point, determinationis made after dropping a lower-order bit of a difference absolute valuecomputed by the differentiator 3. For example, when one bit of a lowerorder is dropped, determination can be made on the assumption that adifference absolute value is always 0 when an actually computeddifference absolute value ranges from 0 to 1. Also, when two bits of alower order are dropped, determination can be made on the assumptionthat a difference absolute value is always 0 when an actually computeddifference absolute value ranges from 0 to 3. With this operation, it ispossible to avoid influence of slight change such as noise, andunnecessary points are not detected as sample points, thereby increasingcompressibility.

[0200]FIG. 22 is a diagram showing the results of computing adifferential absolute value by the differentiator 3 regarding dataoutputted from the oversampling circuit 1 of FIG. 20. As describedabove, the compressed data generating section 4 detects a point where adifferential absolute value is smaller than those of previous andsubsequent points, that is, a point where a minimum differentialabsolute value appears (position indicated by arrows of FIG. 22) as asample point, based on output data of a differential absolute valueshown in FIG. 22. Besides, minimum values appearing on the first andlast point may be incorrect data values. Thus, such a point is notadopted as a sample point.

[0201] When a lower-order bit of a differential absolute value isdropped to provide a margin for detecting a sample point, two equalminimum values may appear successively. In this case, the polarity of adifferential value is determined based on a bollow value of thesubtracter 31, the bollow value being outputted to the node d of thedifferentiator 3 shown in FIG. 21, and a point where a differentialvalue changes in polarity is detected as a sample point.

[0202] Furthermore, when a differential value does not change inpolarity, as shown in FIG. 23, in view of the relationship betweendifferential absolute values on sampling points A and D disposed beforeand after two successive sampling points B and C having equal values, apoint closer to a smaller value is detected as a sample point. In theexample of FIG. 23, since the sampling point D is smaller than thesampling point A in differential absolute value, the sampling point Ccloser to the sampling point D is detected as a sample point.

[0203] As an operation for detecting a sample point, doubledifferentiation is performed as follows: after data supplied from theoversampling circuit 1 is differentiated once, an obtained differentialabsolute value is further differentiated. A point just before a doubledifferential value changes in polarity from negative or 0 to positivemay be extracted as a sample point. Further, from points extracted thusbased on the polarity of double differential values, only a point wherea first differential absolute value is smaller than a fixed value may bedetected as a normal sample point.

[0204] In other words, on a minimum point of a differential absolutevalue obtained by first differentiation, a double differential value,which is obtained by further differentiating a first differentialabsolute value, surely changes in polarity from negative to positive.Thus, when a double differential value of oversampled data is computedand a point where polarity changes from negative to positive (includinga point having a double differential value of 0) is detected, a minimumpoint of a first differential absolute value can be detected accurately.Furthermore, even when two successive minimum points appear with equalvalues, one of them can be positively detected as a sample point.Moreover, by detecting as a normal sample point only a point where afirst differential absolute value is below a fixed value, it is possibleto prevent an unnecessary point from being detected as a sample point,thereby increasing compressibility.

[0205]FIG. 24 is a block diagram showing an example of the configurationfor detecting a sample point by performing the above doubledifferentiation. FIG. 24 shows examples of the configurations of thedifferentiator 3 and the compressed data generating section 4 that areshown in FIG. 13.

[0206] As shown in FIG. 24, the differentiator 3 is provided with afirst differentiating section 41, a rounding section 42, and a seconddifferentiating section 43. Additionally, the compressed data generatingsection 4 is provided with a polarity changing point detecting section44, a threshold value processing section 45, and a data generatingsection 46.

[0207] The first differentiating section 41 differentiates oversampleddata supplied from the oversampling circuit 1 of FIG. 13 for eachsampling point and computes and outputs an absolute value of the data.The rounding section 42 drops a lower-order bit of a first differentialabsolute value computed by the first differentiating section 41. Forexample, three bits of a lower order are dropped by dividing the abovefirst differential absolute value by eight, thereby removing theinfluence of slight change caused by noise. Data outputted from therounding section 42 is supplied to the second differentiating section 43and the threshold value processing section 45 in the compressed datagenerating section 4.

[0208] The second differentiating section 43 further differentiates afirst differential absolute value, which is rounded by the roundingsection 42, for each sampling point. A double differential valuecomputed by the second differentiating section 43 and a bollow valueindicative of its polarity are supplied to the polarity changing pointdetecting section 44 in the compressed data generating section 4.

[0209] As a candidate of a sample point, the polarity changing pointdetecting section 44 extracts a point just before a double differentialvalue supplied from the second differentiating section 43 in thedifferentiator 3 changes in polarity from negative to positive, forexample, the last negative point when double differential values withnegative polarity are successively obtained, or a point where a doubledifferential value is 0. When double differential values are notsuccessively obtained with negative polarity, the corresponding negativepoint may be further extracted as a candidate of a sample point.

[0210] The threshold value processing section 45 compares a firstdifferential absolute value supplied from the rounding section 42 and apredetermined threshold value, regarding candidates of sample pointsthat are extracted from the polarity changing point detecting section44. The threshold value processing section 45 detects as a normal samplepoint only a point where a first differential absolute value is smallerthan a threshold value and transmits the point to the data generatingsection 46.

[0211] The data generating section 46 obtains an amplitude data value oneach sample point detected thus, from oversampled data supplied from theoversampling circuit 1. The data generating section 46 generates atiming data value indicative of a time interval of sample points byusing a clock 8CLK, which is supplied from the PLL circuit 2 with aneight-times frequency. And then, a pair of the amplitude data value andthe timing data value is outputted as compressed data.

[0212] Additionally, in the example of FIG. 24, a threshold value isprocessed using a first differential absolute value rounded by therounding section 42. A threshold value may be processed using a firstdifferential absolute value computed by the first differentiatingsection 41 before rounding. Further, in FIG. 24, a point just before adouble differential value changes in polarity from negative to positiveis extracted as a sample point. A point just after polarity changes fromnegative to positive may be extracted as a sample point. Moreover, theprocessing of a threshold value of FIG. 24 is not limited to doubledifferentiation for detecting a sample point. The processing isapplicable when a sample point is detected by one-time differentiation.

[0213]FIG. 25 is a diagram showing compressed data (pair of an amplitudedata value and a timing data value on each sample point) outputtedaccording to the example of FIG. 22. For example, determination data(two bits), which determines a signal type, and an error correcting codeare added to compressed data outputted thus. Thereafter, compressionsuch as variable-length coding may be further carried out.

[0214] The principles of compression and expansion of Embodiment 2 arealso shown in FIGS. 1 and 2. However, in the case of the presentembodiment, the waveform data of FIG. 1 corresponds to oversampled data,which is generated continuously by data interpolation of theoversampling circuit 1. Moreover, the waveform data of FIG. 2corresponds to data obtained by the process for reproducing originaloversampled data by expansion.

[0215] Referring to FIG. 1, compression will be firstly discussed. Inthe present embodiment, from inputted oversampled data 101, samplepoints 102 a to 102 f having minimum differential absolute values aredetected. And then, amplitude digital data values on the sample points102 a to 102 f and timing data values indicative of time intervals ofthe sample points 102 a to 102 f are obtained. A pair of an amplitudedata value and a timing data value is outputted to the error correctioncoding section 5 of FIG. 13 as compressed data.

[0216] Referring to FIG. 2, the following will discuss an decompressionoperation of data compressed as shown in FIG. 1. When input data 101 iscompressed according to the compression method of FIG. 1, obtainedcompressed data is a numeral series of (*, 7), (5,3), (7,9), (3,1),(3,6), and (3,3). Here, * indicates that no value is shown in FIG. 1.Further, compressed data is inputted in the above order to the timinggenerator 13 and the D-type flip flop 14 on the expansion side.

[0217] First, in the expanding section 15 of FIG. 14, data of a waveforma1 is generated by an interpolating operation from two data values of anamplitude data value “7” and a timing data value “5”, which are firstlyoutputted from the error correction coding section 11. Next, data of awaveform a2 is generated by an interpolating operation from two datavalues of the above timing data value “5” and an amplitude data value“3”, which is subsequently inputted.

[0218] Subsequently, data of a waveform b2 is generated by aninterpolating operation from two data values of the above amplitude datavalue “3” and a timing data value “7”, which is subsequently inputted.Further, data of a waveform b1 is generated by an interpolatingoperation from the above timing data value “7” and an amplitude datavalue “9”, which is subsequently inputted. In this manner, data ofwaveforms c1, c2, d2, d1, e1, and e2 is generated in order by usingcombinations of successively inputted amplitude data values and timingdata values.

[0219] The above operation generates digital data (upper stage of FIG.2) having continuous waveforms a1, b1, c1, d1, and e1, and digital data(lower stage of FIG. 2) having continuous waveforms a2, b2, c2, d2, ande2. And then, the expanding section 15 adds the two pieces of digitaldata generated thus, outputs the data to the D/A converter 16, andperforms digital-analog conversion thereon. Thus, an analog signal isreproduced, which corresponds to the oversampled data 101 of FIG. 1.

[0220] As data interpolation performed by synthesizing digital data onthe upper stage and digital data on the lower stage of FIG. 2, forexample, the operation described in FIG. 6 is applicable.

[0221] Besides, in Embodiment 2, since eight-times oversampling iscarried out during compression, a timing data value indicative of a timeinterval between sample points is not an odd number but is always aneven number (corresponding to 2T on a lateral axis of FIG. 6). Namely,the five timing data values “5, 7, 3, 3, 3” shown in FIG. 1 are actuallytransmitted or stored as values of “40, 56, 24, 24, 24” by eight-timesoversampling.

[0222] When a timing data value T is an odd number, an interpolatingposition t is not placed just on an intermediate point between samplepoints. Thus, the operations need to be performed separately for an evennumber and an odd number of timing data values. However, in the case ofthe present embodiment, a timing data value indicative of a timeinterval between sample points is always an even number. Hence, it isnot necessary to perform complicated operations such as separateoperations for an even number and an odd number.

[0223] Next, another example of the above data interpolation will bediscussed below. Here, the following will describe a method ofdetermining an interpolation value by double oversampling andconvolution using amplitude data values D1 and D2 on successive samplepoints and a timing data value T there between.

[0224]FIGS. 26A and 26B are diagrams showing the results of oversamplingand convolution performed on the first two sample points of compresseddata shown in FIG. 25 (D1=29.5, D2=24.4, and T=6).

[0225] In FIG. 26A, numeric values “29.5” on the leftmost side arevalues of the first amplitude data D1. Twelve numeric values of “29.5”and “0” arranged vertically show that the amplitude data value D1 isstored in D-type flip flops and the like (not shown) making cascadeconnection while the amplitude data value D1 is delayed in order by oneclock. The number of the D-type flip flops is twice as large as T=6,which is a timing data value. Further, the second to sixth numeralseries from the left show the results of shifting the first numeralseries in order by one clock.

[0226] Moreover, the seventh numeral series shows the result of addingand dividing by six the first to sixth numeral series on eachcorresponding row, that is, the result of performing six-phaseconvolution on the first to sixth numeral series. Additionally, theeighth to twelfth numeral series show the results of further shiftingthe values, which are subjected to convolution on the seventh numeralseries, in order by one clock.

[0227] Also, the thirteenth numeral series shows the results of addingand dividing by six the seventh to twelfth numeral series on eachcorresponding row, that is, the results of performing six-phaseconvolution on the seventh to twelfth numeral series. The thirteenthnumeral series on the rightmost side forms a desired interpolation curve(the sampling function a1 in the example of FIG. 2).

[0228] In the same manner as FIG. 26A, a sampling function a2 in thesame section as the sampling function a1 is computed by using the sametiming data value T (=6) and another amplitude data value D2 (=24.4).And then, by determining the sum of the computing results, as shown inFIG. 26B, it is possible to obtain an interpolation curve finallydetermined in the section. Original oversampled data is reproduced byperforming such data interpolation sequentially on all of the samplepoints. Here, the operation of FIG. 26A can be realized by a hardwarestructure, which combines as necessary a plurality of D-type flip flops,adders, and multipliers. The D-type flip flops store data values whiledelaying the data values by one clock.

[0229] Additionally, as another example of data interpolation, themethod shown in FIG. 7 is also applicable.

[0230]FIG. 27 is a diagram showing oversampled data, which is reproducedfrom the compressed data of FIG. 25.

[0231] As shown in comparison between the oversampled data of FIG. 27that is obtained by expansion and the original oversampled data of FIG.20 that is obtained before compression, the expansion of the presentembodiment can reproduce data substantially equal to the originaloversampled data.

[0232] In the decompression apparatus of FIG. 14, oversampled datareproduced thus is inputted to the D/A converter 16 and undergoesdigital-analog conversion. Digital data before D/A conversion hasalready been a continuous and smooth signal as shown in FIG. 27.Therefore, unlike a conventional D/A converter, it is not necessary toartificially increase a sampling frequency by using a digital filter.The quality of an outputted analog signal can be remarkably improvedsimply by D/A conversion.

[0233] As specifically described above, in Embodiment 2, on thecompression side, oversampling and convolution are performed on inputteddiscrete digital data to generate continuous data making smooth change,and obtained oversampled data is sampled at irregular time intervalshaving minimum differential absolute values. Thus, a discrete amplitudedata value and a timing data value indicative of irregular timeintervals are obtained as compressed data. And then, on the expansionside, according to an amplitude data value and a timing data value thatare included in compressed data, discrete data is read at a timeinterval as irregular as the compression side, and continuous pieces ofdata are outputted. The pieces of data are connected by interpolation.

[0234] Therefore, when an analog signal on a time base is compressed andexpanded, the operations can be performed on a time base withoutfrequency conversion. For this reason, the compression and decompressionoperations are not complicated and the configuration for the operationscan be simplified. Moreover, when compressed data is transmitted fromthe compression side and is reproduced on the expansion side, a simpleinterpolating operation on a time base can sequentially process andreproduce compressed data that is inputted on the expansion side. Hence,real-time operations can be realized.

[0235] Further, in the present embodiment, a point where digital datahas a minimum differential absolute value is detected as a sample point,compressed data is generated from an amplitude data value on eachdetected sample point and a timing data value indicative of a timeinterval of sample points, and the compressed data is transmitted orrecorded. Thus, only data on sample points is obtained as compresseddata, thereby achieving high compressibility.

[0236] Furthermore, according to the present embodiment, an inflectionpoint existing in a signal to be compressed is detected as a samplepoint, and compressed data includes all minimum points required forreproducing original data by an interpolating operation on the expansionside. Therefore, it is possible to improve reproducibility of originaldata, thereby obtaining high-quality reproduced data.

[0237] Additionally, in the present embodiment, when oversampling andconvolution are performed on digital data, a function generated from adigital basic waveform is a sampling function with a definite base thathas a value converging to 0 on a limited sampling position, and thefunction can be differentiated for one time. Thus, when a certaininterpolation value is obtained, only values of a limited number ofpieces of discrete data need to be considered, thereby largely reducingan amount of processing. Besides, since a censoring error does notoccur, an interpolation value can be obtained accurately, and as fordata reproduced on the expansion side when compression is made using theinterpolation value, it is possible to improve reproducibility oforiginal data before compression.

[0238] Besides, the convolution discussed in Embodiment 2 is just anexample and the present invention is not limited to the aboveconvolution.

[0239] Moreover, in Embodiment 2, although a digital basic waveform has−1, 1, 8, 8, 1, −1, a digital basic waveform is not limited to the aboveexample. Namely, any waveform is applicable as long as an obtainedinterpolating function is differentiated for one time throughout a rangeand has a definite function converging to 0 on a limited samplingposition. For example, the weight on both sides may be 1 or 0 instead of−1. Also, the weight at the center may be set at a value other thaneight. In either case, satisfactory curve interpolation can be achieved.

[0240] Furthermore, as an interpolating operation performed in theexpanding section 15 of FIG. 14, the convolution of FIG. 16 may beperformed based on the digital basic waveform of FIG. 15. In this case,successive interpolation values can be obtained simply by digitalprocessing referred to as convolution. Thus, D/A conversion results in asmooth analog signal. Therefore, it is possible to omit the LPF 17 andto suppress degradation in phase characteristics that is caused by afilter.

[0241] (Embodiment 3)

[0242] Hereinafter, Embodiment 3 of the present invention will bediscussed in accordance with the accompanied drawings.

[0243] The above Embodiments 1 and 2 adopt an interpolating method of avariable clock length that uses a table in processing on a time base. Incontrast, the following Embodiment 3 can perform compression andexpansion more readily without using a table.

[0244] In Embodiment 3, first, when an analog signal is inputted as asignal to be compressed, the inputted analog signal is subjected to A/Dconversion and is converted to digital data. And then, the digital dataundergoing A/D conversion is rounded by using a first value and a secondvalue. A first value may be equal to a second value, but it is morepreferable that a second value is larger than a first value.

[0245] Further, digital data rounded by the first value isdifferentiated once on each sampling point, and a point where adifferential value changes in polarity is detected as a sample point.Digital data rounded by the second value is obtained as compressedamplitude data of each detected sample point, and timing data indicativeof a time interval of sample points is obtained. Further, differencedata is obtained as for obtained pieces of the compressed amplitudedata, and a pair of the compressed amplitude difference data and timingdata is transmitted or recorded as compressed data.

[0246] Meanwhile, on an expansion side of compressed data generatedthus, compressed amplitude difference data out of compressed data (pairof compressed amplitude difference data and timing data) is oversampledaccording to a clock having a frequency of even-numbered times. Andthen, regarding the compressed amplitude difference data that has beensubjected to oversampling, a code is reversed at an intermediateposition of each section of sample points, the section being indicatedby timing data. As for a data string obtained thus, multiple integral isperformed on each section of the sample points, and then, a movingaverage operation or a convoluting operation (convolution) is carriedout.

[0247] Therefore, it is possible to obtain compressed amplitude datahaving a smooth waveform, which is divided for the sections of thesample points. Next, the compressed amplitude data obtained thus and theabove timing data are used to perform an interpolating operationincluding multiplication performed by the number of bits rounded by thesecond value on the compression side. Thus, interpolation data isgenerated, which smoothly connects pieces of amplitude data of thesections. Further, generated interpolation data is subjected to D/Aconversion as necessary to be converted to an analog signal, and theinterpolation data is outputted.

[0248]FIG. 28 is a block diagram showing an example of the entireconfiguration of a compression apparatus according to Embodiment 3 forrealizing the above compression method.

[0249]FIG. 28 shows the case where digital data sampled at a samplingfrequency such as 44.1 KHz (reference frequency) is inputted as data tobe compressed. The inputted digital data is, for example, signed digitaldata of 16 bits. Hereinafter, compression of an aural signal will bediscussed as an example of digital data.

[0250] Besides, although digital data is directly inputted as data to becompressed, an analog signal may be inputted. In this case, an inputstage of the compression apparatus is provided with, for example, an LPFand an A/D converter. Namely, in order to readily detect a sample point,an input analog signal is converted to digital data by the A/D converterafter noise is removed by the LPF.

[0251] As shown in FIG. 28, the compression apparatus of the presentembodiment is constituted by a timing generator 111, an amplitudegenerator 112, a rounding section 113, a difference computing section114, an encoder 115, and a data memory 116 (option).

[0252] The timing generator 111 differentiates inputted digital data forone time on each sampling point, and detects a sample point in responseto change in polarity of a differential value. And then, timing pulse TPindicative of timing of the detected point and timing data (the numberof clocks CK having a reference frequency) indicative of a time intervalbetween sample points are obtained and outputted. Further, the timinggenerator 111 also generates and outputs various clocks including areading clock of the data memory 116.

[0253] Moreover, the amplitude generator 112 takes out only digital dataon a sample point, which corresponds to timing indicated by timing pulseTP outputted from the timing generator 111, from digital data on eachsampling point that is sampled and inputted according to a clock CKhaving a reference frequency, and the amplitude generator 112 outputsthe digital data as amplitude data of each sample point.

[0254]FIG. 29 is a diagram for explaining the operating principles ofthe timing generator 111 and the amplitude generator 112. Here, datainputted to the timing generator 111 and the amplitude generator 112 isdigital data. In FIG. 29, a waveform of digital data is shown in ananalog manner for explanation.

[0255] In the present embodiment, from digital data 501 inputted forcompression, points 502 a to 502 f, on which differential values changein polarity and differential values are 0, are detected as samplepoints. And then, amplitude data values on the sample points 502 a to502 f and timing data values indicative of time intervals of the samplepoints 502 a to 502 f are obtained and outputted to the subsequentstage.

[0256] In the example of FIG. 29, “D0, D1, D2, D3, D4, and D5” areobtained as digital amplitude data values on the sample points 502 a to502 f, and “T1, T2, T3, T4, and T5” are obtained as timing dataindicative of time intervals between time t0 and t1, time t1 and t2,time t2 and t3, time t3 and t4, and time t4 and t5, of the sample points502 a to 502 f.

[0257] At time t0, an amplitude data value “D0” on the sample point 502a is obtained and a timing data value (not shown), which is indicativeof a time interval from when a previous sample point (not shown) isdetected, is obtained. Thus, a pair of the data values is outputted asdata of time t0.

[0258] Subsequently, at time t1 when the sample point 502 b is detected,a timing data value “T1” is obtained, which is indicative of a timeinterval from time t0 when the sample point 502 a is previouslydetected, and an amplitude data value “D1” on the sample point 502 b isobtained. Thus, a pair of the data values (T1, D1) is outputted as dataof time t1.

[0259] Further, at time t2 when the sample point 502 c is detected, atiming data value “T2” is obtained, which is indicative of a timeinterval from time t1 when the sample point 502 b is previouslydetected, and an amplitude data value “D2” on the sample point 502 c isobtained. Thus, a pair of the data values (T2, D2) is outputted as dataof time t2.

[0260] In this manner, pairs of (T3, D3), (T4, D4), and (T5, D5) arerespectively outputted as data of time t3, t4, and t5. The data includetiming data values indicative of time intervals between time t2 and t3,t3 and t4, and t4 and t5, and amplitude data values detected at time t3,t4, and t5 on the sample points 502 d, 502 e, and 502 f.

[0261]FIG. 30 is a block diagram showing an example of the configurationof the timing generator 111. In FIG. 30, a rounding section 117 roundsdigital data, which is inputted as data to be compressed, by using afirst value N₁ (division using a first value N₁). For example, therounding section 117 rounds inputted digital data by 8 or 16.

[0262] A differentiator 118 differentiates digital data, which isrounded by the rounding section 117, for one time. At this moment, thedifferentiator 118 differentiates digital data every time an input clockCK of 44.1 KHz is supplied, that is, on each sampling point depending ona reference frequency. A differential value is determined by, forexample, subtracting current data, which is captured at timing of aninput clock CK, from data captured at timing of the previous clock.

[0263] Moreover, a sample point detecting section 119 detects as asample point a point where digital data has a differential valuechanging in polarity, according to a differential value computed by thedifferentiator 118. For example, the sample point detecting section 119detects a point where a differential value changes in polarity frompositive to negative or negative to positive and a point where adifferential value is 0. And then, regarding a point where adifferential value changes in polarity from positive to negative ornegative to positive, a point just before polarity changes is detectedas a sample point. Meanwhile, regarding a point where a differentialvalue is 0, the point is detected as a sample point. Additionally, whentwo or more points appear successively with differential values of 0,for example, both ends thereof are detected as sample points.

[0264] A timing generating section 120 counts the number of clocks CKsupplied from when a sample point is detected to when the subsequent,sample point is detected. The timing generating section 120 outputs thenumber as timing data T and outputs timing pulse TP indicative of timingof detected points on sample points. Moreover, the timing generatingsection 120 also generates and outputs various clocks including areading clock.

[0265] As described above, in the present embodiment, before digitaldata is differentiated to detect a sample point, a rounding operation isperformed on the digital data. Although the rounding operation is notalways necessary, it is more preferable to perform the operation.Namely, when original data is differentiated without being rounded,small noise components and unnecessary signal components in originaldata may be detected as sample points, resulting in lowercompressibility. Therefore, it is preferable to perform differentiationafter the rounding operation.

[0266] However, when a first value N₁ for rounding is too large, aninflection point (peak point), on which a differential value originallychanges in polarity, of original data is flattened and a necessary pointmay not be detected as a sample point. In this case, correct data cannotbe reproduced on the expansion side. For this reason, as a first valueN₁, it is necessary to select a suitable value, which is not too largeor too small (first value N₁=8 or 16 is preferable).

[0267]FIG. 31 is a diagram showing a detailed example of theconfiguration of the part for generating the timing pulse TP.

[0268] In FIG. 31, a first D-type flip flop 121 samples and storesinputted digital data to be compressed, according to a clock CK having areference frequency. A multiplier (or divider) 122 multiplies digitaldata, which is stored in the first D-type flip flop 121, by 1/N₁.

[0269] The digital data multiplied by the multiplier 122 by 1/N₁ issupplied to the negative side of a subtracter 124, and the digital datais supplied to the positive side of the subtracter 124 after beingdelayed by a clock CK in a second D-type flip flop 123. Thus, in thesubtracter 124, a differential value is determined by subtractingcurrent data captured at timing of an input clock CK from data capturedat previous timing.

[0270] In the present embodiment, a differential value itself is notnecessary and only polarity needs to be determined when a sample pointis detected. Hence, only a sign bit of differential data is outputtedfrom the subtracter 124. The sign bit of differential data that isoutputted from the subtracter 124 is supplied to one of the inputterminals of an EXNOR circuit 126 and is delayed by a clock CK in athird D-type flip flop 125. Thereafter, the bit is supplied to the otherinput terminal of the EXNOR circuit 126. Hence, the EXNOR circuit 126detects a sample point where a differential value changes in polarity,and timing pulse TP is outputted as data indicative of the detectedpoint.

[0271] The explanation will be continued as follows in accordance withFIG. 28 again. The rounding section 113 rounds amplitude data, which isoutputted from the amplitude generator 112, by using a second value N₂,which is larger than the first value N₁ and outputs compressed amplitudedata. For example, the rounding section 113 rounds by 1024 amplitudedata of each sample point that is outputted from the amplitude generator112. Since amplitude data is rounded by 1024, a data length can beshortened by ten bits per word, thereby largely reducing an amount ofdata.

[0272] Further, the difference computing section 114 determines adifference between pieces of compressed amplitude data that are obtainedby the rounding section 113. For example, difference data issequentially obtained by subtracting compressed amplitude data on theprevious sample point from compressed amplitude data on a sample point.According to the example of FIG. 29, the difference computing section114 performs D1/1024−D0/1024, D2/1024−D1/1024, D3/1024−D2/1024, . . .(division by 1024 is a rounding operation of the rounding section 113).Since a difference is computed thus, it is possible to further reduceindividual data values as compared with compressed amplitude data beforea difference is determined, thereby further shortening a data length.

[0273] The encoder 115 forms a block of a pair of timing data, which isdetermined by the timing generator 111, and compressed amplitudedifference data, which is determined by the difference computing section114, and outputs the pair to a transmission line (not shown) or the datamemory 116 as serial compressed block data.

[0274] Namely, the encoder 115 forms a block of a pair of compressedamplitude difference data and timing data by parallel/serial conversion,and outputs the data block after adding a header and various flags tothe front of the data block. The header includes information such as anidentification mark of the header and a value N₁ used for rounding ofthe rounding section 117. An initial value of compressed amplitude dataand a data block, which is composed of a pair of compressed amplitudedifference data and timing data, follow the above header in ascendingorder. Here, a rounding value N₁ is included in the header because arounding value N₁ is changed to a suitable value for a signal to becompressed.

[0275] The data memory 116 is a record medium for storing compresseddata. The data memory 116 captures and records serial compressed blockdata generated by the encoder 115, according to a clock transmitted fromthe timing generator 111 via the encoder 115. Further, in response to areading clock supplied from the outside, stored compressed data is readand outputted.

[0276]FIG. 32 is a diagram for explaining an example of an actualcompression operation performed by the compression apparatus shown inFIG. 28. Here, in FIG. 32, a vertical direction indicates the passage oftime from above to below.

[0277] Of all data strings A to I of FIG. 32, the data string A on theleftmost side indicates raw data before compression. The raw data issampled according to a sampling frequency of 44.1 KHz.

[0278] The second data string B from the left is the result of roundingraw data by 16 in the rounding section 117 (the multiplier 122 of FIG.31) of FIG. 30. The third data string C is the result of rounding rawdata by 1024 in the rounding section 113 of FIG. 28.

[0279] The fourth data string D is the result of differentiating thesecond data string B (data obtained by rounding raw data by 16) in thedifferentiator 118 of FIG. 30. For example, the second differentialvalue “24” from above is determined by “696−672” using data of the datastring B, and the subsequent differential value “11” is determined by“707−696” using the subsequent data of the data string B.

[0280] The fifth data string E is a flag for indicating a point justbefore a differential value changes in polarity from positive tonegative or negative to positive. Namely, “1” is set on a point justbefore a differential value changes in polarity, and “0” is set on otherpoints. For example, as for differential values on the fourth datastring D, on a part where a differential value changes from “11” to“−47”, a flag “1” is set on a point of “11” just before a differentialvalue changes in polarity. Further, on a part where a differential valuechanges from “−15” to “20”, a flag “1” is set on a point of “−15” justbefore a differential value changes in polarity. A point where a flag“1” is set serves as a sample point.

[0281] The sixth data string F indicates compressed amplitude datagenerated by the rounding section 113 of FIG. 28. Here, forunderstanding of comparison with expansion, which will be discussedlater, compressed amplitude data is shown on each point whenoversampling is performed at a double frequency.

[0282] Actually, compressed amplitude data exists only on a sample pointhaving a flag “1” on the data string E. Compressed amplitude data existsin a similar manner on the following data strings G to I as well.

[0283] The seventh data string G is compressed amplitude difference datagenerated by the difference computing section 114 of FIG. 28. Forexample, the highest data value “−1” is determined by “10−11” using datavalues on successive sample points of the data string F, and thesubsequent data value “0” is determined by “10−10” using data values onthe subsequent successive sample points of the data string F.

[0284] The eighth data string H indicates timing data generated by thetiming generator 111 of FIG. 28. Here, the number of clocks CK is shown,which are supplied from when a sample point is detected to when thesubsequent sample point is detected. On this string as well, timing datais shown on each sampling point having a double frequency. Actually,timing data exists only on sample points having flags “1”.

[0285] The ninth data string I has a flag showing a separation of data.Namely, when compressed amplitude data has the same values on successivesample points, flag values to “0” and “1” are set to indicate differentsample points. For example, a value of compressed amplitude data is “10”both on the second sample point and the third sample point of the datastring F. Thus, in order to indicate different sample points havingequal compressed amplitude data values, a data separating flag having adifferent value is set.

[0286] Of the above data strings, the encoder 115 forms a block of aninitial value “11” of compressed amplitude data shown in the data stringF and a pair of (−1,2), (0,1), (−3,3), . . . , which are compressedamplitude differences and timing data on the sample points of the datastrings G and H, and the data block is outputted as serial compressedblock data.

[0287] As described above, according to the compression apparatus of thepresent embodiment, the raw data to be compressed on the data string Acan be substantially compressed to data only on the sample points of thedata strings G and H. Additionally, data values on the sample points canbe compressed to extremely small values as compared with raw data.

[0288]FIGS. 33A and 33B are diagrams showing an example of theconfiguration of serial compressed block data according to the presentembodiment. In the present embodiment, block data is variable-lengthdata as will be discussed below.

[0289]FIG. 33A shows a block structure of compressed amplitudedifference data. In FIG. 33A, the first bit is a data sign bit (signbit) indicative of polarity of compressed amplitude difference data. Forexample, a value “1” of a data sign bit indicates a negative number anda value “0” indicates a positive number.

[0290] Further, the second bit is a separating flag indicative of thenumber of bits of compressed amplitude difference data. For example,when the separating flag has a value of “1”, compressed amplitudedifference data includes the following two bits (third and fourth bits).When the separating flag has a value of “0”, compressed amplitudedifference data includes the following five bits (third to seventhbits). In this sense, the separating flag indicates a separating pointfrom the subsequent data block.

[0291] As shown in the data string G of FIG. 32, most of compressedamplitude difference data can be represented by two bits except for signbits. Therefore, the separating flag is set at “1” and a two-bit lengthis assigned for most of compressed amplitude difference data, and theseparating flag is set at “0” and a five-bit length is assigned forcompressed amplitude difference data that is not represented by twobits. When five bits are assigned at the maximum, it is possible torepresent all of compressed amplitude difference data.

[0292] Meanwhile, FIG. 33B shows a block structure of timing data. Theblocks of the timing data follow the blocks of the compressed amplitudedifference data. In FIG. 33B, the first bit is a separating flagindicative of the number of bits of the timing data. For example, whenthe separating flag has a value of “1”, the timing data includessubsequent three bits (second to fourth bits), and when the separatingflag has a value of “0”, the timing data includes subsequent eight bits(second to ninth bits).

[0293] As shown in the data string H of FIG. 32, timing data is allcomposed of positive numbers, and most of the data can be represented bythree bits. Therefore, the separating flag is set at “1” and a three-bitlength is assigned for most of timing data, and the separating flag isset at “0” and an eight-bit length is assigned for timing data not beingrepresented by three bits. When eight bits are assigned at the maximum,all of timing data can be represented.

[0294] As described above, in the compression apparatus of the presentembodiment, generated compressed data is further transmitted or recordedas variable-length block data. Hence, compressibility can be furtherincreased by about 1.5 times, thereby achieving higher compressibility.For example, compressibility of 12 or more can be achieved for somekinds of music data on CD.

[0295] The following will discuss an decompression apparatus for theabove-mentioned compression apparatus. FIG. 34 is a block diagramshowing an example of the configuration of the decompression apparatusaccording to the present embodiment. As shown in FIG. 34, thedecompression apparatus of the present embodiment is constituted by aPLL (Phase Locked Loop) circuit 131, a data memory (option) 132, adecoder 133, a timing generator 134, and a square-law interpolation datagenerating section 135.

[0296] The PLL circuit 131 generates a clock 2CK having a doublefrequency (88.2 KHz) from an input clock CK having a reference frequency(44.1 KHz) and supplies the clock 2CK to the timing generator 134 andthe square-law interpolation data generating section 135. Moreover, thedata memory 132 is a record medium for storing serial compressed blockdata transmitted from the compression apparatus.

[0297] The decoder 133 decodes serial compressed block data, which isread from the data memory 132, by using various clocks synchronized witha clock 2CK having a double frequency, and takes out a pair ofcompressed amplitude difference data and timing data. And then, thetaken compressed amplitude difference data is outputted to thesquare-law interpolation data generating section 135, and the takentiming data is outputted to the timing generator 134 and the square-lawinterpolation data generating section 135. Compressed amplitudedifference data is synchronized with a frequency between sample pointsby performing sampling in the square-law interpolation data generatingsection 135 according to a timing pulse TP.

[0298] The timing generator 134 generates a timing pulse TP, which isindicative of a time interval as irregular as sample points detected onthe compression side, from an input clock 2CK in response to timing datasupplied from the decoder 133. Moreover, the timing generator 134 alsogenerates and outputs various clocks including a reading clock for thedata memory 132.

[0299] The square-law interpolation data generating section 135 performsa predetermined square-law interpolating operation using compressedamplitude difference data and timing data that are inputted from thedecoder 133. Thus, digital interpolation data is generated forconnecting sample points. The details of the square-law interpolatingoperation will be discussed later. Interpolation data generated thus isa series of amplitude data that is generated by performing doubleoversampling on original data before compression. Digital interpolationdata generated thus is outputted as expansion data.

[0300] Besides, the example of FIG. 34 shows expansion of digital data.Obtained digital data may be converted to an analog signal as necessarybefore being outputted. In this case, for example, the output stage ofthe square-law interpolation data generating section 135 is providedwith a D/A converter and an LPF. Namely, after digital interpolationdata outputted from the square-law interpolation data generating section135 is converted to an analog signal by the D/A converter, the signal isoutputted as a reproduced analog signal via the LPF.

[0301]FIG. 35 is a diagram showing a detailed example of theconfiguration of the above square-law interpolation data generatingsection 135. In FIG. 35, timing data (T) inputted as a part ofcompressed data is stored in three D-type flip flops 143, 146, and 149according to a timing pulse TP, which is sequentially supplied. Further,a clock 2CK having a double frequency is inputted to the first counter141 and the number of the clocks is counted sequentially.

[0302] A first comparator 142 compares the number of clocks 2CK, whichis counted by a first counter 141, and timing data stored in the D-typeflip flop 143. And then, every time the number of counted clocks 2CKexceeds a timing data value, the comparator 142 outputs a signalindicative of the state (A>B). A second OR circuit 148 ORs a signaloutputted from the first comparator 142 and an external start signal,and outputs the result as a timing pulse TP.

[0303] Here, the second OR circuit 148 generates a timing pulse TPbecause a timing pulse TP needs to be reproduced only by thedecompression apparatus. In this case, when the second OR circuit 148ORs an output signal of the first comparator 142 and an external startsignal, a timing pulse TP can be obtained therefrom.

[0304] Further, a second counter 144 sequentially counts the number ofclocks CK having a reference frequency. A second comparator 145 comparesthe number of clocks CK, which are counted by the second counter 144,and timing data stored in the D-type flip flop 146. And then, every timethe number of counted clocks CK exceeds a value of timing data, thesecond counter 144 outputs a signal indicative of the state. A first ORcircuit 147 ORs a signal outputted from the second comparator 145 and anexternal start signal, and outputs the result to an EXOR circuit 151.

[0305] As described above, when the number of clocks CK according to areference frequency and the number of clocks 2CK according to a doublefrequency are each compared with timing data and an OR is determinedusing signals of the comparison results, a conforming signal (A>B) isoutputted from the first OR circuit 147 just at an intermediate positionof a time interval between two sample points, the time interval beingindicated by timing data (position at a half number of clocks 2CKindicative of the time interval).

[0306] Meanwhile, compressed amplitude difference data inputted as apart of compressed data is stored in a D-type flip flop 152 according toa timing pulse TP, which is sequentially supplied. Compressed amplitudedifference data stored in the D-type flip flop 152 is supplied to afirst adder 154 after being oversampled by a D-type flip flop 153according to a clock 2CK having a double frequency.

[0307] The first adder 154 integrates compressed amplitude differencedata by adding compressed amplitude difference data supplied from theD-type flip flop 153 and accumulated data until then that is stored in aD-type flip flop 155.

[0308] Upon integration, the first adder 154 reverses a sign ofcompressed amplitude difference data as necessary, which is inputtedfrom the D-type flip flop 153, according to an output signal from theEXOR circuit 151. In addition to a conforming signal (A>B) outputtedfrom the above first OR circuit 147, a data sign bit (sign bit of FIG.33), which is stored in the D-type flip flop 152 according to a timingpulse TP, is inputted to the EXOR circuit 151.

[0309] Thus, the first adder 154 reverses a sign of compressed amplitudedifference data when a data sign bit included in a block data ofcompressed amplitude difference data or a conforming signal (A>B) fromthe first OR circuit 147 is reversed in value, that is, on sample pointsand just at an intermediate position between two sample points.

[0310] A first integral value of compressed amplitude difference datathat is determined by the first adder 154 is supplied to a second adder156. The second adder 156 further integrates the first integral value byadding the first integral of compressed amplitude difference data andaccumulated data until then. The first integral value is supplied fromthe first adder 154 and the accumulated data is stored in a D-type flipflop 157.

[0311] A second integral value of compressed amplitude difference datathat is determined by the second adder 156 is directly inputted to oneof the input terminals of a third adder 159 and is inputted to the otherinput terminal of the third adder 159 after being temporarily stored ina D-type flip flop 158. The third adder 159 carries out a moving averageoperation (convoluting operation) by adding a second integral value ofcompressed amplitude difference data and a value obtained by shiftingthe integral value by a clock 2CK, and the third adder 159 outputs theresult to a multiplier 160.

[0312] In the three D-type flip flops 155, 157, and 158, a value isreset at 0 every time a timing pulse TP is supplied. The D-type flipflops 155 and 157 constitute integrators of the first and second stages,and the D-type flip flop 158 shifts a second integral value by a clock2CK. Hence, the second integration and the moving average operation ofcompressed amplitude difference data are separately carried out in eachperiod of a timing pulse TP (each section between sample points).

[0313] The multiplier 160 multiplies a moving average data value, whichis determined by the third adder 159, by 512/T² (T represents timingdata), and outputs the result to a fourth adder 161. The fourth adder161 adds a data value from the multiplier 160 and a data value obtainedby multiplying an initial value (“11” in the example of FIG. 32) ofcompressed amplitude data by 1024 in another multiplier 162. And then,data outputted from the fourth adder 161 is outputted as expansion dataafter being temporarily stored in the D-type flip flop 162 according toa clock 2CK having a double frequency.

[0314] With the above configuration, after compressed amplitudedifference data is integrated twice, a moving average operation of afirst stage is performed and the operation of the following equation (8)is performed on data M of the operating result.

(M/2T² +F)?1024=(M/T ²)?512+F?1024  (8)

[0315] Here, F represents a current value of compressed amplitude data.Thus, it is possible to realize a circuit for performing oversamplingsquare-law interpolation on sample points having irregular intervals(variable clock) without using a table.

[0316]FIG. 36 is a diagram for explaining an example of an actualdecompression operation performed by the decompression apparatus of FIG.34. Here, in FIG. 36, a vertical direction represents the passage oftime from above to below.

[0317] Of data strings A to G shown in FIG. 36, the data string A on theleftmost side includes data obtained by performing oversampling oncompressed amplitude difference data according to a clock 2CK having adouble frequency and reversing a sign with a half period of a timingpulse TP. For example, four data values (−1, −1, 1, 1) from above arereversed in sign at an intermediate position of four data values {−1,−1, −1, −1} of the data string G shown in FIG. 32.

[0318] The second data string B from the left includes data obtained byintegrating compressed amplitude difference data for one time in thefirst adder 154 of FIG. 35. For example, in the operation on the higheststage, an initial value “0” of the D-type flip flop 155 and a data value“−1” from the D-type flip flop 153 are added up to an accumulated value“−1” of the D-type flip flop 155. In the operation on the second stage,an accumulated value “−1” of the D-type flip flop 155 and a data value“−1” from the D-type flip flop 153 are added up to an accumulated value“−2” of the D-type flip flop 155. The same operation is performed on thethird and fourth stages, and the D-type flip flop 155 has accumulatedvalues “−1” and “0” in order.

[0319] The third data string C includes data obtained by integratingcompressed amplitude difference data twice in the second adder 156 ofFIG. 35. For example, in the operation on the highest stage, an initialvalue “0” of the D-type flip flop 157 and a data value “−1” from thefirst adder 154 are added up to an accumulated value “−1” of the D-typeflip flop 157. In the operation on the second stage, an accumulatedvalue “−1” of the D-type flip flop 157 and a data value “−2” from thefirst adder 154 are added up to an accumulated value “−3” of the D-typeflip flop 157. The same operation is performed on the third and fourthstages, and the D-type flip flop 157 has accumulated values “−4” and“−4” in order.

[0320] The fourth data string D includes data obtained by shifting thethird data string C by a clock 2CK in the D-type flip flop 158 of FIG.35. Further, the fifth data string E includes data obtained by addingthe third data string C and the fourth data string D in the third adder159 of FIG. 35.

[0321] As described above, until the fifth data string E is obtained,the second integration and the moving average operation are separatelycarried out in each period of a timing pulse TP (each section betweensample points). Namely, the above operations are carried out in each ofthe sections divided by dotted lines of FIG. 36. Hence, digitalwaveforms are generated separately in the sections between samplepoints.

[0322] The sixth data string F includes expansion data generated byprocessing of the multiplier 160 and later of FIG. 35. Namely, since theinterpolating operation of equation (8) is performed on a digitalwaveform obtained thus for each of the sections between sample points, adigital waveform (oversampled interpolation data) is obtained forsmoothly connecting digital waveforms of the individual sections.

[0323] In the present embodiment, as shown in FIG. 29, inflection points(peak points) of a digital waveform are detected as sample points, dataon the sample points is processed as compressed data. Therefore,compressed data includes all minimum data required for reproducingoriginal data by expansion. Hence, data other than inflection points canbe smoothly interpolated with 16-bit accuracy by performing square-lawinterpolation using the compressed data.

[0324] Further, in the present embodiment, when double integration isperformed on compressed amplitude difference data, compressed amplitudedifference data inputted to an integrator (first adder 154) of the firststage is reversed in sign at a half of a period between sample points.Thus, it is possible to obtain a digital waveform with amplitude valueschanging more smoothly by integration and a moving average operation onthe subsequent second stage.

[0325] Moreover, in the present embodiment, when an operation such asintegration is performed, the D-type flip flop in an integrator and amoving average computing section on each stage are reset in value foreach timing pulse TP. Thus, it is possible to accurately conduct theoverall algorithm and to eliminate an accumulative error of theintegrator, thereby reproducing a more accurate digital waveform.

[0326] In this manner, the decompression apparatus of the presentembodiment can reproduce original data almost faithfully.

[0327] The seventh data string G of FIG. 36 includes data obtained byinterpolating original data before compression with a double frequency.As shown in comparison between original data on the data string G beforecompression and expansion data on the data string F, expansion datagenerated by the decompression apparatus of the present embodiment hassubstantially the same values as original data before compression.

[0328]FIG. 37 is a graph showing the data strings F and G. As shown inthe graph, the decompression apparatus of the present embodiment canreproduce substantially the same data as original data beforecompression.

[0329] As specifically described above, according to the presentembodiment, digital data to be compressed can be compressed and expandeddirectly on a time base without time/frequency conversion. Thus, theoperation is not complicated and the configuration can be simplified.Further, without using table information, a simple interpolatingoperation on a time base can sequentially process and reproducecompressed data to be inputted, thereby realizing real-time operations.

[0330] Besides, in the present embodiment, a point where digital datahas a differential value changing in polarity is detected as a samplepoint, compressed data is generated from an amplitude data value on eachdetected sample point and a timing data value indicative of a timeinterval of sample points, and the compressed data is transmitted orrecorded. Hence, only data on a sample point can be obtained ascompressed data, thereby achieving high compressibility.

[0331] Further, in the present embodiment, amplitude data on each samplepoint is not used as compressed data directly but is rounded by 1024.Hence, a data length can be shortened by several bits per word, therebylargely reducing an amount of data. Furthermore, rounded amplitude datais not used as compressed data directly but difference data thereof isobtained and is used as compressed data. Thus, the number of bitsrequired for compressed data can be further reduced, achieving a smalleramount of data.

[0332] Additionally, in the present embodiment, obtained compressedamplitude difference data and timing data are encoded to variable-lengthblock data and are used as final compressed data. Therefore,compressibility can be further improved by about 1.5 times, therebyachieving extremely high compressibility.

[0333] Further, in the present embodiment, digital data is rounded by asuitable value before a differential value is determined for detecting asample point. Thus, it is possible to prevent noise components andunnecessary signal components from being detected as sample points andto positively detect only accurate positions as sample points. Moreover,during expansion, on the first stage of a double integrator, additionand subtraction are switched in the first half and the second half ofthe period of a timing pulse TP. Thus, it is possible to compensate fora rounding error on the expansion side and to reproduce a digitalwaveform having amplitude values changing more smoothly.

[0334] Also, in the present embodiment, when an operation such as doubleintegration is performed together with oversampling, an accumulatedvalue of the integrator on each stage is reset in each timing pulse TP.Hence, it is possible to eliminate an accumulative error of theintegrator and to reproduce a more accurate digital waveform. Thus, itis possible to obtain high-quality expansion data close to original databefore compression.

[0335] As described above, according to the compression anddecompression methods of the present embodiment, it is possible toprovide new compression and decompression methods for realizingextremely high compressibility and higher quality of reproduced data.

[0336] Besides, the above Embodiment 3 describes the example in whichthe rounding section 113 rounds an amplitude data value by 1024.However, the value is not limited to 1024.

[0337] Moreover, although double oversampling is performed in the aboveEmbodiment 3, oversampling is not limited to double as long as it isperformed by even-numbered times.

[0338] Additionally, in Embodiment 3, during compression, amplitude dataon sample points is extracted from digital data inputted to becompressed, and then, the extracted amplitude data is rounded by asecond value N₂. Compressed amplitude data on sample points may beextracted after inputted digital data is rounded.

[0339] Further, in Embodiment 3, during expansion, double integration isperformed and a moving average operation of a single stage is performed.Integration is not limited to double and multiple integration is alsoapplicable. Besides, a moving average operation is not limited to asingle stage.

[0340] A moving average operation or a convoluting operation may beperformed with more stages.

[0341] Moreover, it is also possible to combine the compression anddecompression methods of the above Embodiments 1 to 3 as necessary or tointerchange constituent technologies as necessary. For example,Embodiments 1 to 3 describes three different methods of detecting asample point. Any one of the detecting methods is applicable in theembodiments.

[0342] The above-mentioned compression and decompression methods ofEmbodiments 1 to 3 can be realized by any of hardware, DSP, andsoftware. For example, in the case of software, the compressionapparatus and the decompression apparatus of the present embodiments areactually composed of a CPU or MPU, RAM, ROM, and so on of a computer,and the methods are realized by operating programs stored in a RAM andROM.

[0343] Therefore, the methods are realized as follows: programs foroperating a computer for achieving the function of the presentembodiments are stored in a record medium such as a CD-ROM, and theprograms are read by the computer. As a record medium for recording suchprograms, a floppy disk, a hard disk, a magnetic tape, an optical disk,a magneto-optical disk, a DVD, a nonvolatile memory card, and so on areapplicable in addition to a CD-ROM. Further, the methods can also berealized by downloading the programs to a computer via a network such asthe Internet.

[0344] Further, the computer runs supplied programs to achieve thefunction of the above embodiments. Additionally, the embodiments of thepresent invention also include the programs used in the case where theprograms realize the function of the above embodiments in coordinationwith an OS (operating system), which operates in the computer, or otherapplication software and the like, and the case where all or some of theoperations of the supplied programs are performed by a function extendedboard and a function extended unit of the computer to achieve thefunction of the above embodiments.

[0345] Additionally, each of the above-mentioned embodiments merelyshows a specific example for realizing the present invention. It shouldbe understood that the present invention is not interpreted within alimited technical range. Namely, the present invention is to covervarious forms within the spirit or major characteristics of theinvention.

INDUSTRIAL APPLICABILITY

[0346] The present invention is useful for providing new compression anddecompression methods capable of realizing both of extremely highcompressibility and higher quality of reproduced data with a simpleconfiguration and in a shorter compression and decompression time.

What is claimed is:
 1. A compression method characterized in that asignal to be compressed is sampled at a time interval of a point where adifferential absolute value is at a predetermined value or smaller, anda pair of discrete amplitude data on each sample point and timing dataindicative of the time interval between sample points is obtained ascompressed data.
 2. A compression method characterized in that a signalto be compressed is oversampled, said oversampled data is sampled at atime interval of a point where a differential absolute value is at apredetermined value or smaller, and a pair of discrete amplitude data oneach sample point and timing data indicative of the time intervalbetween sample points is obtained as compressed data.
 3. The compressionmethod according to claim 2, said oversampled data is further subjectedto an operation for generating average value data of successive samplevalues.
 4. A compression apparatus, comprising: differentiating meansfor differentiating digital data to be compressed, sample pointdetecting means for detecting a sample point where a differentialabsolute value determined by said differentiating means is at apredetermined value or smaller, and compression means for outputting ascompressed data a pair of amplitude data on a sample point detected bysaid sample point detecting means and timing data indicative of a timeinterval between sample points.
 5. The compression apparatus accordingto claim 4, further comprising A/D converting means for generating saiddigital data to be compressed by performing A/D conversion on aninputted analog signal.
 6. The compression apparatus according to claim4, further comprising oversampling means for oversampling said digitaldata to be compressed by using a clock having a frequency ofeven-numbered times, said differentiating means differentiates digitaldata generated by said oversampling means, and said compression meansoutputs timing data measured according to the clock having saidfrequency of even-numbered times.
 7. The compression apparatus accordingto claim 6, further comprising average value data generating means forgenerating average value data of successive sample values for digitaldata generated by said oversampling means, said differentiating meansdifferentiates digital data generated by said average value datagenerating means.
 8. An decompression method characterized in thatregarding compressed data composed of a pair of amplitude data onpredetermined sample points extracted from a signal to be compressed andtiming data indicative of a time interval between sample points,amplitude data on successive sample points and timing data therebetweenare used to obtain expansion data by determining interpolation data forinterpolating pieces of amplitude data having a time interval indicatedby said timing data.
 9. The decompression method according to claim 8, asampling function obtained from two pieces of amplitude data on twosuccessive sample points and timing data therebetween is used to obtaininterpolation data for interpolating said two pieces of amplitude data.10. An decompression apparatus, comprising: timing control means forcontrolling timing such that amplitude data on each sample point that isincluded in compressed data is sequentially captured at each timeinterval between said sample points according to timing data indicativeof a time interval between said sample points extracted from a signal tobe compressed, said timing data being included in said compressed data,and decompression means for obtaining expansion data by determininginterpolation data for interpolating two pieces of amplitude data byusing said two pieces of amplitude data on two successive sample pointsand timing data therebetween, said amplitude data being captured undercontrol of said timing control means.
 11. The decompression apparatusaccording to claim 10, said decompression means uses a sampling functionobtained from two pieces of amplitude data on said two successive samplepoints and timing data therebetween so as to obtain interpolation datafor interpolating said two pieces of amplitude data.
 12. Acompression/decompression system characterized in that on a compressionside, a signal to be compressed is sampled at a time interval of a pointwhere a differential absolute value is at a predetermined value orsmaller, and a pair of discrete amplitude data on each sample point andtiming data indicative of the time interval between sample points isobtained as compressed data, and on an expansion side, amplitude dataand timing data that are included in said compressed data are used toreproduce said amplitude data so as to have the time interval indicatedby said timing data, and expansion data is obtained by determininginterpolation data based on two pieces of amplitude data on twosuccessive sample points and timing data therebetween, saidinterpolation data interpolating said two pieces of amplitude data. 13.A record medium being capable of computer reading, characterized byrecording a program for causing a computer to carry out the steps ofsaid compression method according to in claim
 1. 14. A record mediumbeing capable of computer reading, characterized by recording a programfor causing a computer to carry out the steps of said decompressionmethod discussed in claim
 8. 15. A compression method characterized inthat digital data of a basic waveform corresponding to values ofinputted n pieces of discrete data is synthesized by oversampling and amoving average operation or a convoluting operation so as to obtaindigital interpolation values for said discrete data, and then, saiddetermined digital interpolation values are sampled at a time intervalof a point having a minimum differential absolute value, and a pair ofdiscrete amplitude data on sample points and timing data indicative ofthe time interval between sample points is obtained as compressed data.16. A compression apparatus, comprising: oversampling means fordetermining a digital interpolation value for discrete data bysynthesizing digital data of a basic waveform corresponding to values ofinputted n pieces of discrete data by oversampling and a moving averageoperation or a convoluting operation, differentiating means fordifferentiating a digital interpolation value determined by saidoversampling means, and compressed data generating means for detecting asample point having a minimum differential value determined by saiddifferentiating means and outputting as compressed data a pair ofamplitude data on detected sample points and timing data indicative of atime interval between sample points.
 17. The compression apparatusaccording to claim 16, further comprising rounding means for rounding alower-order bit of a differential absolute value determined by saiddifferentiating means, said compressed data generating means detects asthe sample point a point having a minimum differential absolute valuerounded by said rounding means.
 18. The compression apparatus accordingto claim 16, said compressed data generating means detects as the samplepoint only a point where a differential absolute value is below a fixedvalue, from points having a minimum differential absolute valuedetermined by said differentiating means or a minimum differentialabsolute value rounded by said rounding means.
 19. A compressionapparatus, comprising: oversampling means for determining a digitalinterpolation value for discrete data by synthesizing digital data of abasic waveform corresponding to values of inputted n pieces of discretedata by oversampling and a moving average operation or a convolutingoperation, first differentiating means for determining a differentialabsolute value by differentiating a digital interpolation valuedetermined by said oversampling means, second differentiating means fordetermining a double differential value by further differentiating adifferential absolute value obtained by said first differentiatingmeans, sample point detecting means for detecting a point where a doubledifferential value determined by said second differentiating meanschanges in polarity from negative or 0 to positive as a sample pointhaving a minimum differential absolute value determined by said firstdifferentiating means, and compressed data generating means foroutputting as compressed data a pair of amplitude data on sample pointsdetected by said sample point detecting means and timing data indicativeof a time interval between sample points.
 20. The compression apparatusaccording to claim 19, said sample point detecting means detects as saidsample point points where the double differential value determined bysaid second differentiating means changes in polarity from negative or 0to positive and the differential absolute value determined by said firstdifferentiating means is below a fixed value.
 21. The compressionapparatus according to claim 19, further comprising rounding means forrounding a lower-order bit of the differential absolute value determinedby said first differentiating means, said second differentiating meansfurther differentiates the differential absolute value rounded by saidrounding means.
 22. The compression apparatus according to claim 21,said sample point detecting means detects as said sample point a pointwhere the differential absolute value rounded by said rounding means isbelow a fixed value, from the points where the double differential valuedetermined by said second differentiating means changes in polarity fromnegative or 0 to positive.
 23. The compression apparatus according toclaim 16, said oversampling means performs oversampling on the digitaldata of the basic waveform corresponding to values of said inputted npieces of discrete data, by using a clock having a frequency of anintegral multiple, and said compressed data generating means outputstiming data measured according to the clock having said frequency of theintegral multiple.
 24. The compression apparatus according to claim 16,said oversampling means comprising; storing means for storing in advancedata obtained by oversampling digital data of said basic waveform, andperforming the moving average operation or the convoluting operation onoversampled data of a basic waveform, and synthesizing means formodulating data stored in said storing means to amplitude correspondingto values of said inputted n pieces of discrete data and synthesizes npieces of data obtained thus by the moving average operation orconvoluting operation.
 25. A compression/decompression systemcharacterized in that on a compression side, digital data of a basicwaveform corresponding to values of inputted n pieces of discrete datais synthesized by oversampling and a moving average operation or aconvoluting operation so as to obtain a digital interpolation value forsaid discrete data, and then, said obtained digital interpolation valueis sampled at a time interval of a point having a minimum differentialabsolute value, a pair of discrete amplitude data on each sample pointand timing data indicative of the time interval between sample points isobtained as compressed data, and on an expansion side, amplitude dataand timing data that are included in said compressed data are used toobtain expansion data by determining interpolation data forinterpolating two pieces of amplitude data based on said two pieces ofamplitude data on two successive sample points and timing datatherebetween.
 26. The compression/decompression system according toclaim 25, oversampling is performed on digital data of the basicwaveform corresponding to values of said inputted n pieces of discretedata by using a clock having a frequency of an integral multiple, andtiming data is outputted, which is measured according to the clockhaving said frequency of the integral multiple.
 27. Thecompression/decompression system according to claim 25, a samplingfunction with a definite base is used to determine interpolation datafor interpolating two pieces of amplitude data, said sampling functionbeing obtained from two pieces of amplitude data on said two successivesample points and timing data therebetween.
 28. A record medium beingcapable of computer reading, characterized by recording a program forcausing a computer to carry out the steps of said compression methodaccording to claim
 15. 29. A record medium being capable of computerreading, characterized by recording a program for causing a computer tofunction as said means according to claim
 16. 30. A record medium beingcapable of computer reading, characterized by recording a program forcausing a computer to realize the function of saidcompression/decompression system according to claim
 25. 31. Acompression method characterized in that inputted digital data isdifferentiated, a point where a differential value changes in polarityis detected as a sample point, digital data rounded by a predeterminedvalue is obtained as discrete compressed amplitude data on each samplepoint, and a pair of compressed amplitude difference data, which isobtained by computing a difference between pieces of said compressedamplitude data, and timing data indicative of a time interval betweensample points is obtained as compressed data.
 32. The compression methodaccording to claim 31, inputted digital data is rounded by a firstvalue, digital data rounded by said first value is differentiated, apoint where a differential value changes in polarity is detected as asample point, and digital data rounded by a second value, which islarger than said first value, is obtained as discrete compressedamplitude data on each sample point.
 33. The compression methodaccording to claim 31, said compressed amplitude difference data andsaid timing data are converted to variable-length block data.
 34. Thecompression method according to claim 33, a single variable-length blockof said compressed amplitude difference data is composed of a sign bitindicative of polarity of said compressed amplitude difference data, aseparating flag indicative of a bit length of said compressed amplitudedifference data, and said compressed amplitude difference data having abit length indicated by said separating flag.
 35. The compression methodaccording to claim 33, the single variable-length block of said timingdata is composed of a separating flag indicative of a bit length of saidtiming data, and said timing data having a bit length indicated by saidseparating flag.
 36. A compression apparatus, comprising: timing datagenerating means for differentiating inputted digital data, detecting apoint having a differential value changing in polarity as a samplepoint, and obtaining timing data indicative of a time interval betweensample points, compressed amplitude data generating means for generatingdata obtained by rounding said inputted digital data by a predeterminedvalue as discrete compressed amplitude data on each sample pointdetected by said timing data generating means, and difference computingmeans for computing a difference between pieces of compressed amplitudedata obtained by said compressed amplitude data generating means, a pairof compressed amplitude difference data obtained by said differencecomputing means and timing data obtained by said timing data generatingmeans is obtained as compressed data.
 37. The compression apparatusaccording to claim 36, further comprising first rounding means forrounding said inputted digital data by a first value, said timing datagenerating means differentiates digital data rounded by said firstrounding means and detects as the sample point a point having thedifferential value changing in polarity, and said compressed amplitudedata generating means generates said compressed amplitude data byrounding said digital data by a second value larger than said firstvalue.
 38. The compression apparatus according to claim 36, saidcompressed amplitude data generating means comprising; amplitude dataextracting means for extracting digital data on each sample point, whichis detected by said timing data generating means, as discrete amplitudedata, and second rounding means for rounding amplitude data extracted bysaid amplitude data extracting means by a second value.
 39. Thecompression apparatus according to claim 36, further comprising encodingmeans for converting said compressed amplitude difference data and saidtiming data to variable-length block data.
 40. The compression apparatusaccording to claim 39, a single variable-length block of said compressedamplitude difference data is composed of a sign bit indicative ofpolarity of said compressed amplitude difference data, a separating flagindicative of a bit length of said compressed amplitude difference data,and said compressed amplitude difference data having a bit lengthindicated by said separating flag.
 41. The compression apparatusaccording to claim 39, a single variable-length block of said timingdata is composed of a separating flag indicative of a bit length of saidtiming data, and said timing data having a bit length indicated by saidseparating flag.
 42. An decompression method characterized in thatregarding compressed data composed of a pair of compressed amplitudedifference data on predetermined sample points, which are extracted fromdigital data to be compressed, and timing data indicative of a timeinterval between sample points, said compressed amplitude differencedata oversampled by even-numbered times is subjected to multipleintegral, a moving average operation is performed on an integral value,a moving average operating value obtained thus and said timing data areused to obtain as expansion data square-law interpolation data forinterpolating pieces of amplitude data on sample points having a timeinterval indicated by said timing data.
 43. The decompression methodaccording to claim 42, said compressed amplitude difference dataoversampled by even-numbered times is reversed in sign at anintermediate position of each section between sample points, the sectionbeing indicated by the timing data, and data strings obtained thus aresubjected to multiple integral.
 44. The decompression method accordingto claim 42, said compressed amplitude difference data oversampled byeven-numbered times, multiple integral and the moving average operationare performed in each section between sample points indicated by saidtiming data.
 45. An decompression apparatus, regarding compressed datacomposed of a pair of compressed amplitude difference data on apredetermined sample points extracted from digital data to be compressedand timing data indicative of a time interval between sample points,said decompression apparatus comprising: integrating means forperforming multiple integral on said compressed amplitude differencedata oversampled by even-numbered times, moving average computing meansfor performing moving average operation on an integral value computed bysaid integrating means, and interpolation data generating means forobtaining square-law interpolation data, which interpolates pieces ofamplitude data on sample points having a time interval indicated by saidtiming data, as expansion data by using a moving average operating valuecomputed by said moving average operating means and said timing data.46. The decompression apparatus according to claim 45, said integratingmeans comprises a sign reversing means of reversing a sign of saidcompressed amplitude difference data over sampled by said even-numberedtimes at an intermediate position of each section between sample pointsindicated by said timing data, on a first stage of said multipleintegral.
 47. The decompression apparatus according to claim 45, saidintegrating means comprises reset means of resetting an integral valueof said compressed amplitude difference data, which is oversampled bysaid even-numbered times, in each section between sample pointsindicated by said timing data.
 48. The decompression apparatus accordingto claim 45, said moving average computing means comprises reset meansof resetting a moving average operating value of the integral value,which is computed by said integrating means, in each section betweensample points indicated by said timing data.
 49. A record medium beingcapable of computer reading, characterized by recording a program forcausing a computer to carry out the steps of said compression methodaccording to claim
 31. 50. A record medium being capable of computerreading, characterized by recording a program for causing a computer tocarry out the steps of said decompression method according to claim 42.51. A record medium being capable of computer reading, characterized byrecording a program for causing a computer to function as said meansaccording to claim
 36. 52. A record medium being capable of computerreading, characterized by recording a program for causing a computer tofunction as said means according to claim 45.